[vectorIntrinsics+mask] RFR: 8266287: Basic mask IR implementation for the Vector API masking feature support

Jatin Bhateja jbhateja at openjdk.java.net
Wed May 12 10:09:58 UTC 2021


On Thu, 6 May 2021 10:12:08 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

> Based on [1], this patch adds the C2 compiler mid-end changes for the masking feature support. It mainly contains:
>  1) Generation of the mask IRs for vector mask, including:
>     - Mask generations, e.g. load/compare/maskAll
>     - Mask operations, e.g. and/or/xor
>  2) Conversions between vector and mask after loading mask values from memory and before storing mask values into memory
>  3) Generation of the vector IRs which need the mask value as the control
>     - The mask value is appended to the original vector node's input list
> 
> With this change, the bottom type of the vector mask will be set to `"TypeVectMask"` if the platform supports the masking feature and the backend implementations are added.
> 
> Note that this patch only contains the compiler mid-end changes. The backend implementations for SVE/AVX-512 will be in the
> followed-up patches.
> 
> [1] https://github.com/openjdk/panama-vector/pull/57

src/hotspot/share/opto/classes.hpp line 475:

> 473: macro(AndVMask)
> 474: macro(OrVMask)
> 475: macro(XorVMask)

Since you have used existing IR nodes for other commutative vector operations like Add/Sub/Mul, why specialized masked IR for OrV/AndV/XorV

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

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


More information about the panama-dev mailing list