[vectorIntrinsics+mask] RFR: 8270349: Initial X86 backend support for optimizing masking operations on AVX512 targets. [v8]

Jatin Bhateja jbhateja at openjdk.java.net
Mon Aug 23 02:53:16 UTC 2021


On Thu, 19 Aug 2021 21:38:33 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 11 commits:
>> 
>>  - 8270349: Jcheck error resolution (extra white space)
>>  - Merge branch 'vectorIntrinsics+mask' of http://github.com/openjdk/panama-vector into JDK-8270349
>>  - 8270349: Optimizing JIT sequence for alltrue/anytrue and maskAll operations.
>>  - 8270349: Minor fix missed in last checkin.
>>  - 8270349: Review comments resolution.
>>  - 8270349: Review comments resolution.
>>  - 8270349: Review comments resolution.
>>  - Merge branch 'vectorIntrinsics+mask' of http://github.com/openjdk/panama-vector into JDK-8270349
>>  - 8270349: Merge with latest vectorIntrinsics+mask tip + extend backend support for XorV,AndV,OrV and Compare masked operations.
>>  - 8270349: Fix for 32-bit build failure.
>>  - ... and 1 more: https://git.openjdk.java.net/panama-vector/compare/c1950c63...b001f939
>
> src/hotspot/cpu/x86/x86.ad line 7256:
> 
>> 7254:   predicate(UseAVX > 2 &&
>> 7255:             (VM_Version::supports_avx512vl() ||
>> 7256:              Matcher::vector_length_in_bytes(n->in(1)->in(1)) == 64) && // src1
> 
> This doesn't look correct. This instruct sets vec dst, whereas with avx512vl kReg dst is expected.
> Should have been:
>             !VM_Version::supports_avx512vl() &&
>             vector_length_in_bytes(n->in(1)->in(1)) == 64 &&

Yes this new pattern was added specifically for 64 byte unsigned/signed comparisons (will apply to integral types only) for targets which do not support VL extensions.

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

PR: https://git.openjdk.java.net/panama-vector/pull/99


More information about the panama-dev mailing list