[vectorIntrinsics] RFR: 8283413: Add C2 mid-end and x86 back-end implementation for bit REVERSE and REVERSE_BYTES operation [v3]

Jatin Bhateja jbhateja at openjdk.java.net
Mon Mar 28 03:07:58 UTC 2022


On Thu, 24 Mar 2022 08:26:58 GMT, Quan Anh Mai <duke at openjdk.java.net> 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 five commits:
>> 
>>  - 8283413: White space removal.
>>  - 8283413: Review comments resoultion, ReverseBytes IR and x86 backend support.
>>  - Merge branch 'vectorIntrinsics' of http://github.com/openjdk/panama-vector into JDK-8283413
>>  - 8283413: Adding Ideal transform for (ReverseV (ReverseV VEC)) => VEC and (ReverseV (ReverseV VEC MASK) MASK)) => VEC
>>  - 8283413: Add C2 mid-end and x86 back-end implementation for bit REVERSE operation
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 4535:
> 
>> 4533: void C2_MacroAssembler::vector_reverse_bit(BasicType bt, XMMRegister dst, XMMRegister src, XMMRegister xtmp1,
>> 4534:                                            XMMRegister xtmp2, XMMRegister xtmp3, Register rtmp, int vec_enc) {
>> 4535:   if (VM_Version::supports_avx512bw()) {
> 
> `VM_Version::supports_avx512bw() && (VM_Version::supports_avx512vl() || vec_enc == AVX_512bit)`

VPSHUFB used here needs AVX512VLBW feature in-order to operate over 128/256/512 bit vector. Thus for an EVEX encoded instruction limiting feature here is AVX512VLBW.

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

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


More information about the panama-dev mailing list