[vectorIntrinsics+mask] RFR: 8269282: Add masking support for vector gather_load/scatter_store [v2]

Jatin Bhateja jbhateja at openjdk.java.net
Tue Jun 29 07:50:15 UTC 2021


On Tue, 29 Jun 2021 01:54:51 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> This patch adds the masking support for masked vector gather load and scatter store, including:
>>   1) The Vector API java implementation and hotspot intrinsics changes:
>>     - Add masking information to the `loadWithMap/storeWithMap` intrinsics.
>>     - Both masked and non-masked gather_load/scatter_store call the same intrinsics. The mask value and class are set to `"null"` for non-masked operations.
>>   2) The C2 compiler changes:
>>     - Add two new IRs for the masked gather_load/scatter_store. The new masked IR will be generated for masked operation if the platform supports the predicate feature and the backend has implemented it.  Otherwise, the compiler will go back to the default java implementation.
>
> Xiaohong Gong has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix MacOS x64 build failure issue

src/hotspot/share/opto/vectornode.hpp line 849:

> 847:   LoadVectorGatherMaskedNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const TypeVect* vt, Node* indices, Node* mask)
> 848:     : LoadVectorNode(c, mem, adr, at, vt) {
> 849:     init_class_id(Class_LoadVector);

class ID set at Class_LoadVector will prevent usage of [is/isa/as]_LoadVectorGatherMasked. it should be set as Class_LoadVectorGatherMasked with appropriate changes in node.hpp, but we can defer it for now till actual usages of such APIs are needed in code base.

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

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


More information about the panama-dev mailing list