[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