RFR: 8364305: Support AVX10 saturating floating point conversion instructions [v11]

Mohamed Issa missa at openjdk.org
Thu Sep 11 23:10:54 UTC 2025


On Thu, 11 Sep 2025 20:42:16 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> Mohamed Issa has updated the pull request incrementally with two additional commits since the last revision:
>> 
>>  - Check for instructions that shouldn't appear in vector floating point conversion tests
>>  - Correctly calculate vector lengths and don't rely on VectorReinterpret in cast2F2X and cast2D2X memory instructions
>
> src/hotspot/cpu/x86/x86.ad line 7715:
> 
>> 7713: %}
>> 7714: 
>> 7715: instruct cast2FtoX_reg_evex(vec dst, vec src) %{
> 
> Could be named as castFtoX_reg_avx10.

Renamed

> src/hotspot/cpu/x86/x86.ad line 7728:
> 
>> 7726: %}
>> 7727: 
>> 7728: instruct cast2FtoX_mem_evex(vec dst, memory src) %{
> 
> Could be named as  castFtoX_mem_avx10.

Renamed

> src/hotspot/cpu/x86/x86.ad line 7789:
> 
>> 7787: %}
>> 7788: 
>> 7789: instruct cast2DtoX_reg_evex(vec dst, vec src) %{
> 
> Could be named as castDtoX_reg_avx10.

Renamed

> src/hotspot/cpu/x86/x86.ad line 7802:
> 
>> 7800: %}
>> 7801: 
>> 7802: instruct cast2DtoX_mem_evex(vec dst, memory src) %{
> 
> Could be named as castDtoX_mem_avx10.

Renamed

> src/hotspot/cpu/x86/x86_64.ad line 11728:
> 
>> 11726: %}
>> 11727: 
>> 11728: instruct conv2F2I_reg_reg(rRegI dst, regF src)
> 
> Could be named as convF2I_reg_reg_avx10.

Renamed

> src/hotspot/cpu/x86/x86_64.ad line 11739:
> 
>> 11737: %}
>> 11738: 
>> 11739: instruct conv2F2I_reg_mem(rRegI dst, memory src)
> 
> Could be named as convF2I_reg_mem_avx10.

Renamed

> src/hotspot/cpu/x86/x86_64.ad line 11762:
> 
>> 11760: %}
>> 11761: 
>> 11762: instruct conv2F2L_reg_reg(rRegL dst, regF src)
> 
> Could be named as convF2L_reg_reg_avx10

Renamed

> src/hotspot/cpu/x86/x86_64.ad line 11773:
> 
>> 11771: %}
>> 11772: 
>> 11773: instruct conv2F2L_reg_mem(rRegL dst, memory src)
> 
> Could be named as convF2L_reg_mem_avx10

Renamed

> src/hotspot/cpu/x86/x86_64.ad line 11796:
> 
>> 11794: %}
>> 11795: 
>> 11796: instruct conv2D2I_reg_reg(rRegI dst, regD src)
> 
> Could be named as convD2I_reg_reg_avx10.

Renamed

> src/hotspot/cpu/x86/x86_64.ad line 11807:
> 
>> 11805: %}
>> 11806: 
>> 11807: instruct conv2D2I_reg_mem(rRegI dst, memory src)
> 
> Could be named as convD2I_reg_mem_avx10.

Renamed

> src/hotspot/cpu/x86/x86_64.ad line 11830:
> 
>> 11828: %}
>> 11829: 
>> 11830: instruct conv2D2L_reg_reg(rRegL dst, regD src)
> 
> Could be named as convD2L_reg_reg_avx10.

Renamed

> test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java line 494:
> 
>> 492:     }
>> 493: 
>> 494:     public static final String CAST_F2X = PREFIX + "CAST_F2X" + POSTFIX;
> 
> May be we can name CAST_F2X as X86_VCAST_F2X and CAST2_F2X as X86_VCAST_F2X_AVX10.
> Then we can use the similar theme for other names below as well.

Renamed

> test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java line 496:
> 
>> 494:     public static final String CAST_F2X = PREFIX + "CAST_F2X" + POSTFIX;
>> 495:     static {
>> 496:         machOnlyNameRegex(CAST_F2X, "castF2X_reg_(av|eve)x");
> 
> This should be "castFtoX_reg_(av|eve)x".

Fixed

> test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java line 501:
> 
>> 499:     public static final String CAST_D2X = PREFIX + "CAST_D2X" + POSTFIX;
>> 500:     static {
>> 501:         machOnlyNameRegex(CAST_D2X, "castD2X_reg_(av|eve)x");
> 
> This should be "castDtoX_reg_(av|eve)x".

Fixed

> test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java line 506:
> 
>> 504:     public static final String CAST2_F2X = PREFIX + "CAST2_F2X" + POSTFIX;
>> 505:     static {
>> 506:         machOnlyNameRegex(CAST2_F2X, "cast2F2X_(reg|mem)_evex");
> 
> This should be "cast2FtoX_(reg|mem)_evex"

Fixed

> test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java line 511:
> 
>> 509:     public static final String CAST2_D2X = PREFIX + "CAST2_D2X" + POSTFIX;
>> 510:     static {
>> 511:         machOnlyNameRegex(CAST2_D2X, "cast2D2X_(reg|mem)_evex");
> 
> This should be "cast2DtoX_(reg|mem)_evex".

Fixed

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342544829
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342545092
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342545345
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342545547
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342545846
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342546207
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342546448
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342546884
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342547335
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342547642
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342547891
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342548440
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342543063
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342543272
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342543522
PR Review Comment: https://git.openjdk.org/jdk/pull/26919#discussion_r2342543785


More information about the hotspot-compiler-dev mailing list