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

Bhavana Kilambi bkilambi at openjdk.org
Thu Jun 26 08:27:54 UTC 2025


On Wed, 25 Jun 2025 08:49:26 GMT, Bhavana Kilambi <bkilambi at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp line 2887:
>> 
>>> 2885:   // Generate Neon tbl when UseSVE == 0 or UseSVE == 1 with vector length of 16B
>>> 2886: 
>>> 2887:   bool useNeon = (UseSVE == 0) || (UseSVE == 1 && isQ);
>> 
>> The function name is `select_from_two_vectors_HS_Neon`, but we still have to check whether to use NEON inside it. It looks confusing. Is it better to split the special `!isQ && UseSVE >=1` cases and combine it to below `select_from_two_vectors` method?
>> 
>> Combining `!isQ` to the sve rule may also make the rule's predicate simpler?
>
> Thanks, I can do that. Earlier I was trying to keep in line with VectorRearrange which had similar name and if I remember correctly had both Neon and SVE implementation in the one named as "Neon" (before you optimized it recently) and I continued keeping the same format. I agree, this can be simplified further.

Done

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

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


More information about the hotspot-compiler-dev mailing list