[vectorIntrinsics+mask] RFR: 8266621: Add masking support for unary/ternary vector intrinsics
vlivanov at openjdk.java.net
Fri May 14 16:44:02 UTC 2021
On Mon, 10 May 2021 06:15:24 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:
> Similar with , this patch adds the masking support for `unary/ternary` vector intrinsics. It adds the mask information to the original intrinsic methods which are called both by masked and non-masked unary/ternary operations. For non-masked operations, the mask class and value are set to null.
> Also change to use the `"binaryMaskedOp"` for vector mask logical operations instead of` "binaryOp"`. So that all the original nary intrinsics and hotspot implementation can be removed.
> Note that this patch only contains the Vector API java implementation and the hotspot intrinsics changes. No compiler mid-end and backend implementations are included.
>  https://bugs.openjdk.java.net/browse/JDK-8264563
Overall, looks good.
* On naming: while browsing the patch and seeing `Masked` I constantly think about non-Masked counterpart. What about reusing `unaryOp`/`binaryOp`/`ternaryOp` names for the merged intrinsic?
* Can you remind me what happens for SVML stubs when `mask != NULL`? Does the JVM reject the intrinsification? I believe the stubs don't support masked operation mode.
More information about the panama-dev