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

Sandhya Viswanathan sviswanathan at openjdk.java.net
Fri Aug 13 00:30:36 UTC 2021


On Thu, 12 Aug 2021 18:49:21 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> src/hotspot/cpu/x86/macroAssembler_x86.cpp line 8212:
>> 
>>> 8210:     case T_BOOLEAN:
>>> 8211:     case T_BYTE:
>>> 8212:        kandbl(dst, src1, src2);
>> 
>> Is the type here the vector element type? Is so, for byte vector we need kandql. For short kanddl. For int kandwl, For long kandbl.
>
> No its not vector type. From the instruction side always T_LONG basic type is passed. TypeVectMask is vector of booleans.  We can use vector length to emit shorter instructions ,  but efficiency wise its wont be different to doing an operation over entire opmask register.

"uint masklen" would be a better argument instead of "BasicType type". Similar to your other mask operation instructions like alltrue, anytrue, kortest below.

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

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


More information about the panama-dev mailing list