RFR: 8278584: compiler/vectorapi/VectorMaskLoadStoreTest.java failed with "Error: ShouldNotReachHere()"

Mai Đặng Quân Anh duke at openjdk.java.net
Sun Dec 12 17:59:09 UTC 2021


On Sun, 12 Dec 2021 05:51:31 GMT, Jie Fu <jiefu at openjdk.org> wrote:

> Hi all,
> 
> I'd like to fix the vector_length_encoding error in `long_to_maskLE8_avx` and `long_to_maskGT8_avx`.
> Since the input parameter of `vector_length_encoding` [1] is the number of vector bytes (not number of vector bits), I believe we shouldn't `mask_len*8` [2][3].
> 
> The patch also removes an useless statement [4].
> 
> Testing:
>    - vector api tests on Linux/x64-{AVX512, AVX2}
> 
> Thanks.
> Best regards,
> Jie
> 
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L1219
> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L9552
> [3] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L9568
> [4] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L9580

It seems that our `fromLong` tests create a mask from `long` values then immediately convert it back to `long` values using `toLong` to verify the results. Unfortunately, a `VectorMaskToLongNode` and a `VectorLongToMaskNode` together being optimized out leads to us not being able to verify the code emission.

-------------

PR: https://git.openjdk.java.net/jdk/pull/6808


More information about the hotspot-compiler-dev mailing list