RFR: 8338021: Support new unsigned and saturating vector operators in VectorAPI [v31]

Jatin Bhateja jbhateja at openjdk.org
Fri Oct 25 02:06:17 UTC 2024


On Thu, 24 Oct 2024 13:41:13 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> To exercise non memory operand pattern we need a vector operation padding layer after load vector, this will always ensure that selector pick all register operands flavor of instruction. Since its a generic limitation, do you think we should float it as a separate PR? 
>> 
>> I have created a new RFE https://bugs.openjdk.org/browse/JDK-8342959  for reference. Given that we have moved IR tests out this PR on the grounds of review complexity, lets not add more code here.
>
> Ok, we can file a separate RFE. Though I really have voiced 2 concerns:
> - Making sure we always test `_mem` and `_reg` variants in the backend. See your https://bugs.openjdk.org/browse/JDK-8342959
> - Making sure we have tests that would detect vectors that are too long. This would require some padding between the vectors, so that we have some untouched space - and if it does get touched we know that a vector was too long. Does that make sense? This is I guess also a general concern - and would have to be applied to all vector instructions.

Hi @eme64 , @PaulSandoz , in general bounds overrun problem is only pertinent to a very small portion of vector ISA which supports memory destination flavor e.g. [VCVTPS2PH](https://www.felixcloutier.com/x86/vcvtps2ph) , in all other cases we only load exact memory size into vector i.e. 4 , 8 and 16 bytes of memory will be loaded into 128 bit vector. Similarly, store vector writes exact memory size and intermediate vector operations with all register operands can operate at equally sized or lowest upper vector size for a given vector species.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20507#discussion_r1815901472


More information about the hotspot-compiler-dev mailing list