[vectorIntrinsics+mask] RFR: 8266621: Add masking support for unary/ternary vector intrinsics

Vladimir Ivanov 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 [1], 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.
> [1] 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.


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

More information about the panama-dev mailing list