[vectorIntrinsics+mask] RFR: 8265109: SVE predicate register allocation support for vectorIntrinsics
Sandhya Viswanathan
sviswanathan at openjdk.java.net
Wed Apr 14 01:12:11 UTC 2021
On Tue, 13 Apr 2021 04:07:25 GMT, Ningsheng Jian <njian 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/adlc/formssel.cpp line 2278:
> 2276: if (strcmp(name, "RegL") == 0) size = 2;
> 2277: if (strcmp(name, "RegN") == 0) size = 1;
> 2278: if (strcmp(name, "RegVectMask") == 0) size = 1;
This might not work across architectures. @jatin-bhateja what are your thoughts on this?
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.
-------------
PR: https://git.openjdk.java.net/panama-vector/pull/65
More information about the panama-dev
mailing list