[v2] x86: recognize both avx10.1aux and avx10v1aux
Checks
| Context |
Check |
Description |
| linaro-tcwg-bot/tcwg_binutils_build--master-arm |
success
|
Build passed
|
| linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 |
success
|
Build passed
|
| linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 |
success
|
Test passed
|
| linaro-tcwg-bot/tcwg_binutils_check--master-arm |
success
|
Test passed
|
Commit Message
Accept both as names for the same feature. Keep existing naming
(avx10.1aux) while adding avx10v1aux, as the latter aligns with
gcc (and Clang eventually).
gas/
* config/tc-i386.c: Recognize avx10v1aux as an alias of avx10.1aux.
* doc/c-i386.texi: Document avx10v1aux alongside avx10.1aux.
* testsuite/gas/i386/i386.exp: Update test names accordingly.
* testsuite/gas/i386/avx10v1aux-*: Rename from testsuite/gas/i386/avx10.1-aux-*.
---
Notes:
Changes in v2:
- Adds avx10v1aux rather than replacing avx10.1aux as per Jan's
suggestion [1].
- Update two of the four tests (256-cvt, 512-media) to use arch
avx10.1aux, so that both names are used.
[1] https://sourceware.org/pipermail/binutils/2026-August/150900.html
gas/config/tc-i386.c | 1 +
gas/doc/c-i386.texi | 4 +++-
.../i386/{avx10.1-aux-256-cvt.d => avx10v1aux-256-cvt.d} | 0
.../i386/{avx10.1-aux-256-cvt.s => avx10v1aux-256-cvt.s} | 0
.../{avx10.1-aux-256-media.l => avx10v1aux-256-media.l} | 0
.../{avx10.1-aux-256-media.s => avx10v1aux-256-media.s} | 2 +-
.../i386/{avx10.1-aux-512-cvt.d => avx10v1aux-512-cvt.d} | 0
.../i386/{avx10.1-aux-512-cvt.s => avx10v1aux-512-cvt.s} | 2 +-
.../{avx10.1-aux-512-media.l => avx10v1aux-512-media.l} | 0
.../{avx10.1-aux-512-media.s => avx10v1aux-512-media.s} | 0
gas/testsuite/gas/i386/i386.exp | 8 ++++----
11 files changed, 10 insertions(+), 7 deletions(-)
rename gas/testsuite/gas/i386/{avx10.1-aux-256-cvt.d => avx10v1aux-256-cvt.d} (100%)
rename gas/testsuite/gas/i386/{avx10.1-aux-256-cvt.s => avx10v1aux-256-cvt.s} (100%)
rename gas/testsuite/gas/i386/{avx10.1-aux-256-media.l => avx10v1aux-256-media.l} (100%)
rename gas/testsuite/gas/i386/{avx10.1-aux-256-media.s => avx10v1aux-256-media.s} (84%)
rename gas/testsuite/gas/i386/{avx10.1-aux-512-cvt.d => avx10v1aux-512-cvt.d} (100%)
rename gas/testsuite/gas/i386/{avx10.1-aux-512-cvt.s => avx10v1aux-512-cvt.s} (84%)
rename gas/testsuite/gas/i386/{avx10.1-aux-512-media.l => avx10v1aux-512-media.l} (100%)
rename gas/testsuite/gas/i386/{avx10.1-aux-512-media.s => avx10v1aux-512-media.s} (100%)
Comments
On 20.08.2026 09:05, Rohan Shenoy wrote:
> Accept both as names for the same feature. Keep existing naming
> (avx10.1aux) while adding avx10v1aux, as the latter aligns with
> gcc (and Clang eventually).
>
> gas/
> * config/tc-i386.c: Recognize avx10v1aux as an alias of avx10.1aux.
> * doc/c-i386.texi: Document avx10v1aux alongside avx10.1aux.
> * testsuite/gas/i386/i386.exp: Update test names accordingly.
> * testsuite/gas/i386/avx10v1aux-*: Rename from testsuite/gas/i386/avx10.1-aux-*.
> ---
>
> Notes:
> Changes in v2:
> - Adds avx10v1aux rather than replacing avx10.1aux as per Jan's
> suggestion [1].
> - Update two of the four tests (256-cvt, 512-media) to use arch
> avx10.1aux, so that both names are used.
This is fine, yet ...
> gas/config/tc-i386.c | 1 +
> gas/doc/c-i386.texi | 4 +++-
> .../i386/{avx10.1-aux-256-cvt.d => avx10v1aux-256-cvt.d} | 0
> .../i386/{avx10.1-aux-256-cvt.s => avx10v1aux-256-cvt.s} | 0
> .../{avx10.1-aux-256-media.l => avx10v1aux-256-media.l} | 0
> .../{avx10.1-aux-256-media.s => avx10v1aux-256-media.s} | 2 +-
> .../i386/{avx10.1-aux-512-cvt.d => avx10v1aux-512-cvt.d} | 0
> .../i386/{avx10.1-aux-512-cvt.s => avx10v1aux-512-cvt.s} | 2 +-
> .../{avx10.1-aux-512-media.l => avx10v1aux-512-media.l} | 0
> .../{avx10.1-aux-512-media.s => avx10v1aux-512-media.s} | 0
> gas/testsuite/gas/i386/i386.exp | 8 ++++----
> 11 files changed, 10 insertions(+), 7 deletions(-)
> rename gas/testsuite/gas/i386/{avx10.1-aux-256-cvt.d => avx10v1aux-256-cvt.d} (100%)
> rename gas/testsuite/gas/i386/{avx10.1-aux-256-cvt.s => avx10v1aux-256-cvt.s} (100%)
> rename gas/testsuite/gas/i386/{avx10.1-aux-256-media.l => avx10v1aux-256-media.l} (100%)
> rename gas/testsuite/gas/i386/{avx10.1-aux-256-media.s => avx10v1aux-256-media.s} (84%)
> rename gas/testsuite/gas/i386/{avx10.1-aux-512-cvt.d => avx10v1aux-512-cvt.d} (100%)
> rename gas/testsuite/gas/i386/{avx10.1-aux-512-cvt.s => avx10v1aux-512-cvt.s} (84%)
> rename gas/testsuite/gas/i386/{avx10.1-aux-512-media.l => avx10v1aux-512-media.l} (100%)
> rename gas/testsuite/gas/i386/{avx10.1-aux-512-media.s => avx10v1aux-512-media.s} (100%)
... do you really mean to insist on this renaming? The respective ChangeLog
entry saying "Update test names accordingly" is stale, now that both forms
are recognized.
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -1253,6 +1253,7 @@ static const arch_entry cpu_arch[] =
> VECARCH (sm4, SM4, ANY_SM4, reset),
> SUBARCH (pbndkb, PBNDKB, PBNDKB, false),
> VECARCH (avx10.1, AVX10_1, ANY_AVX512F, set),
> + VECARCH (avx10v1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
> VECARCH (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
> VECARCH (avx10.2, AVX10_2, ANY_AVX10_2, set),
> SUBARCH (user_msr, USER_MSR, USER_MSR, false),
Please insert after the existing entry, ...
> --- a/gas/doc/c-i386.texi
> +++ b/gas/doc/c-i386.texi
> @@ -221,6 +221,7 @@ accept various extension mnemonics. For example,
> @code{avx10.1/256},
> @code{avx10.1/128},
> @code{avx10.1aux},
> +@code{avx10v1aux},
... like you do here.
> @@ -1719,7 +1720,8 @@ supported on the CPU specified. The choices for @var{cpu_type} are:
> @item @samp{.avx512_vpopcntdq} @tab @samp{.avx512_vbmi2} @tab @samp{.avx512_vnni}
> @item @samp{.avx512_bitalg} @tab @samp{.avx512_bf16} @tab @samp{.avx512_vp2intersect}
> @item @samp{.tdx} @tab @samp{.avx_vnni} @tab @samp{.avx512_fp16} @tab @samp{avx512_bmm}
> -@item @samp{.avx10.1} @tab @samp{.avx10.1aux} @tab @samp{.avx10.2} @tab @samp{.clwb}
> +@item @samp{.avx10.1} @tab @samp{.avx10v1aux} @tab @samp{.avx10.1aux} @tab @samp{.avx10.2}
Similarly please swap new and old entries here.
Jan
@@ -1253,6 +1253,7 @@ static const arch_entry cpu_arch[] =
VECARCH (sm4, SM4, ANY_SM4, reset),
SUBARCH (pbndkb, PBNDKB, PBNDKB, false),
VECARCH (avx10.1, AVX10_1, ANY_AVX512F, set),
+ VECARCH (avx10v1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
VECARCH (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
VECARCH (avx10.2, AVX10_2, ANY_AVX10_2, set),
SUBARCH (user_msr, USER_MSR, USER_MSR, false),
@@ -221,6 +221,7 @@ accept various extension mnemonics. For example,
@code{avx10.1/256},
@code{avx10.1/128},
@code{avx10.1aux},
+@code{avx10v1aux},
@code{user_msr},
@code{msr_imm},
@code{apx_f},
@@ -1719,7 +1720,8 @@ supported on the CPU specified. The choices for @var{cpu_type} are:
@item @samp{.avx512_vpopcntdq} @tab @samp{.avx512_vbmi2} @tab @samp{.avx512_vnni}
@item @samp{.avx512_bitalg} @tab @samp{.avx512_bf16} @tab @samp{.avx512_vp2intersect}
@item @samp{.tdx} @tab @samp{.avx_vnni} @tab @samp{.avx512_fp16} @tab @samp{avx512_bmm}
-@item @samp{.avx10.1} @tab @samp{.avx10.1aux} @tab @samp{.avx10.2} @tab @samp{.clwb}
+@item @samp{.avx10.1} @tab @samp{.avx10v1aux} @tab @samp{.avx10.1aux} @tab @samp{.avx10.2}
+@item @samp{.clwb}
@item @samp{.rdpid} @tab @samp{.ptwrite} @tab @samp{.ibt} @tab @samp{.prefetchi}
@item @samp{.cmpccxadd} @tab @samp{.wrmsrns} @tab @samp{.msrlist} @tab @samp{.se1}
@item @samp{.avx_ne_convert} @tab @samp{.rao_int} @tab @samp{.fred} @tab @samp{.lkgs}
similarity index 100%
rename from gas/testsuite/gas/i386/avx10.1-aux-256-cvt.d
rename to gas/testsuite/gas/i386/avx10v1aux-256-cvt.d
similarity index 100%
rename from gas/testsuite/gas/i386/avx10.1-aux-256-cvt.s
rename to gas/testsuite/gas/i386/avx10v1aux-256-cvt.s
similarity index 100%
rename from gas/testsuite/gas/i386/avx10.1-aux-256-media.l
rename to gas/testsuite/gas/i386/avx10v1aux-256-media.l
similarity index 84%
rename from gas/testsuite/gas/i386/avx10.1-aux-256-media.s
rename to gas/testsuite/gas/i386/avx10v1aux-256-media.s
@@ -1,6 +1,6 @@
# Check 32bit AVX10.1-aux/256 media instructions
.arch generic32
- .arch .avx10.1aux/256
+ .arch .avx10v1aux/256
.equ AVX10_V1_AUX, 1
.include "avx10_2-256-media.s"
similarity index 100%
rename from gas/testsuite/gas/i386/avx10.1-aux-512-cvt.d
rename to gas/testsuite/gas/i386/avx10v1aux-512-cvt.d
similarity index 84%
rename from gas/testsuite/gas/i386/avx10.1-aux-512-cvt.s
rename to gas/testsuite/gas/i386/avx10v1aux-512-cvt.s
@@ -1,6 +1,6 @@
# Check 32bit AVX10.1-aux/512 convert instructions
.arch generic32
- .arch .avx10.1aux/512
+ .arch .avx10v1aux/512
.equ AVX10_V1_AUX, 1
.include "avx10_2-512-cvt.s"
similarity index 100%
rename from gas/testsuite/gas/i386/avx10.1-aux-512-media.l
rename to gas/testsuite/gas/i386/avx10v1aux-512-media.l
similarity index 100%
rename from gas/testsuite/gas/i386/avx10.1-aux-512-media.s
rename to gas/testsuite/gas/i386/avx10v1aux-512-media.s
@@ -521,10 +521,10 @@ if [gas_32_check] then {
run_list_test "user_msr-inval"
run_list_test "msr_imm-inval"
run_list_test "apx-push2pop2-inval"
- run_dump_test "avx10.1-aux-512-cvt"
- run_dump_test "avx10.1-aux-256-cvt"
- run_list_test "avx10.1-aux-512-media" "-I${srcdir}/$subdir -almn --divide --listing-lhs-width=2"
- run_list_test "avx10.1-aux-256-media" "-I${srcdir}/$subdir -almn --divide --listing-lhs-width=2"
+ run_dump_test "avx10v1aux-512-cvt"
+ run_dump_test "avx10v1aux-256-cvt"
+ run_list_test "avx10v1aux-512-media" "-I${srcdir}/$subdir -almn --divide --listing-lhs-width=2"
+ run_list_test "avx10v1aux-256-media" "-I${srcdir}/$subdir -almn --divide --listing-lhs-width=2"
run_dump_test "avx10_2-evex-promote"
run_dump_test "avx10_2-512-media"
run_dump_test "avx10_2-512-media-intel"