RFR: 8289186: Support predicated vector load/store operations over X86 AVX2 targets. [v2]

Xiaohong Gong xgong at openjdk.org
Wed Jul 6 02:50:32 UTC 2022


On Tue, 5 Jul 2022 18:41:50 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   8289186: Review comments resolved.
>
> src/hotspot/share/opto/vectorIntrinsics.cpp line 313:
> 
>> 311:     if (!is_supported && (sopc == Op_StoreVectorMasked || sopc == Op_LoadVectorMasked)) {
>> 312:       return true;
>> 313:     }
> 
> Still unclear for me. As I understand `the upfront checks`, you mention, are checks at lines 270 and 286. So we know that `StoreVectorMasked` and `LoadVectorMasked` are supported.
> The second part of your comment is talking about `non-predicated targets`. Does it mean that the real check should be next?:
> 
>    if (Matcher::has_predicated_vectors()) {
>       ....
>    } else if (sopc == Op_StoreVectorMasked || sopc == Op_LoadVectorMasked) {
>      // your comment
>      return true;
>    }
>    ```
>    Or I am still missing what are you trying to do here?

Could we change the `VectorMaskUseType` here https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/vectorIntrinsics.cpp#L1221 instead of doing the modification here? Originally we assume `LoadVectorMasked/StoreVectorMasked` is implemented with predicated feature, we added the `VectorMaskUsePred`. If the assumption is changed now, we can just remove `VectorMaskUsePred` and so only `match_rule_supported_vector` is checked for such ops.

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

PR: https://git.openjdk.org/jdk/pull/9324


More information about the hotspot-compiler-dev mailing list