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