[vectorIntrinsics+mask] RFR: 8272479: Java API and IR changes for masked rearrange operation
Xiaohong Gong
xgong at openjdk.java.net
Mon Aug 16 03:19:46 UTC 2021
On Sat, 14 Aug 2021 21:58:52 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
> - Re-organized the Java API implementation to use one common entry point of masked/non-masked vector compare operation.
> - Intrinsic side changes to absorb newly passed mask if target support predicated instructions else handled appropriately by blending full vector rearrange vector with broadcasted ZERO vector.
src/hotspot/share/opto/vectorIntrinsics.cpp line 1758:
> 1756: const TypeInt* vlen = gvn().type(argument(4))->isa_int();
> 1757:
> 1758: if (vector_klass == NULL || shuffle_klass == NULL || elem_klass == NULL || mask_klass == NULL || vlen == NULL) {
It allows the `mask_klass` to be `NULL` for non-masked rearrange, right? If so I think it's better to only check the `mask_klass` for `is_masked_op`.
src/hotspot/share/opto/vectorIntrinsics.cpp line 1778:
> 1776: if (!is_klass_initialized(vector_klass) ||
> 1777: !is_klass_initialized(shuffle_klass) ||
> 1778: !is_klass_initialized(mask_klass)) {
ditto
src/hotspot/share/opto/vectorIntrinsics.cpp line 1842:
> 1840: }
> 1841:
> 1842: if (v1 == NULL || shuffle == NULL || mask == NULL) {
`mask` is `NULL` for non-masked rearrange, right? I guess this might make the non-masked rearrange intrinsify failed?
-------------
PR: https://git.openjdk.java.net/panama-vector/pull/110
More information about the panama-dev
mailing list