RFR: 8348868: AArch64: Add backend support for SelectFromTwoVector [v3]

Bhavana Kilambi bkilambi at openjdk.org
Wed Jun 18 09:02:59 UTC 2025


On Wed, 18 Jun 2025 08:51:47 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>>> Yes, it would be incorrect. I tried to use SVE2 tbl instruction for 64-bit on a 128-bit machine and the results are incorrect. But we currently do not have an SVE2 machine with 256-bit to test our implementation on.
>> 
>> It maybe possible in future, right? We can just use the 64bits and 128bits as an example to do the test.
>> 
>>> No, the index should contain values according to the vector length being used. I could see that for 64-bit Byte, it generates numbers between 0-15 and not 0-31 (for vector length of 128)
>> 
>> The valid index for a 64-bit byte should be 0-8, right? From the API level of `SelectFromTwoVector`, it seems the values inside of the `index` vector is in range of VLEN or 2 * VLEN ?
>
> Or, maybe we can just disable/unsupport the cases for this op that the vector size is smaller than the max vector size and the max vector size >128-bits. And keep the 64bits as it is.  We should add comment and revisit this part once 256bits SVE2 machine is supported in future. WDYT?

> The valid index for a 64-bit byte should be 0-8, right? From the API level of SelectFromTwoVector, it seems the values inside of the index vector is in range of VLEN or 2 * VLEN ?

Yes, 0-7 for 64-bit Byte but this op is selecting from two vectors so the index should contain values in the range of [0, 2 * VLEN)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23570#discussion_r2154048486


More information about the hotspot-compiler-dev mailing list