[vectorIntrinsics+mask] RFR: 8265109: SVE predicate register allocation support for vectorIntrinsics

Ningsheng Jian njian at openjdk.java.net
Wed Apr 14 06:24:14 UTC 2021


On Wed, 14 Apr 2021 01:06:56 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> This is the SVE predicate register allocation part for Vector API masking support. Since we don't have sufficent usages to test it in
>> jdk/jdk, and based on @sviswa7 's proposal [1], we would like to put it to vectorIntrinsics+mask first and get tested here with further predicate-based vector masking support, though so far no issue found with Xiaohong's initial Vector API masking support.
>> 
>> [1] https://mail.openjdk.java.net/pipermail/panama-dev/2021-April/012920.html
>
> src/hotspot/share/opto/chaitin.cpp line 1392:
> 
>> 1390:       }
>> 1391:       return OptoReg::Bad; // will cause chunk change, and retry next chunk
>> 1392:     } else if (lrg._is_predicate) {
> 
> lrg._is_predicate is set to 1 for all architectures, so using scalable_reg_slots on this path doesn't look correct.

This is inside lrg.is_scalable() condition of L1362, which handles scalable predicate register specifically. I think for non-scalable arch, the normal path of regmask handling should be fine.

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

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


More information about the panama-dev mailing list