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

Bhavana Kilambi bkilambi at openjdk.org
Tue Jun 17 08:18:38 UTC 2025


On Tue, 17 Jun 2025 03:00:59 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/aarch64_vector.ad line 7176:
>> 
>>> 7174:                                           vReg index, vReg tmp1) %{
>>> 7175:   predicate((Matcher::vector_element_basic_type(n) == T_SHORT ||
>>> 7176:             type2aelembytes(Matcher::vector_element_basic_type(n)) == 4) &&
>> 
>> To use the same basic type check condition, can we use `type2aelembytes(Matcher::vector_element_basic_type(n)) == 2` instead of `Matcher::vector_element_basic_type(n) == T_SHORT` here?
>
> How about just using the negate condition of rule `vselect_from_two_vectors` ? 
> 
> predicate(Matcher::vector_element_basic_type(n) != T_BYTE &&
>           (UseSVE < 2 || Matcher::vector_length_in_bytes(n) < 16));

Hi @XiaohongGong , thanks for your prompt review. I can't use the negate condition here as it will include `T_DOUBLE` and `T_LONG` as well which are not supported. I'll change it to the same basic type check instead.

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

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


More information about the hotspot-compiler-dev mailing list