x86: rename avx10.1aux to 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-arm |
success
|
Test passed
|
| linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 |
success
|
Test passed
|
Commit Message
Align with GCC/Clang naming (-mavx10v2aux) as discussed [1].
gas/
* config/tc-i386.c: Rename avx10.1aux to avx10v1aux.
* doc/c-i386.texi: Ditto.
* testsuite/gas/i386/i386.exp: Ditto
* testsuite/gas/i386/avx10v1aux-*: Rename from testsuite/gas/i386/avx10.1-aux-*.
[1] https://sourceware.org/pipermail/binutils/2026-July/150416.html
---
gas/config/tc-i386.c | 2 +-
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} | 2 +-
.../{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} | 2 +-
gas/testsuite/gas/i386/i386.exp | 8 ++++----
11 files changed, 11 insertions(+), 11 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} (84%)
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} (84%)
Comments
> From: Rohan Shenoy <RohanRadhesh.Shenoy@amd.com>
> Sent: Wednesday, August 19, 2026 4:18 PM
>
> diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
> index 1ce5a063c67..b41eeeddc71 100644
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -1253,7 +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 (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
> + VECARCH (avx10v1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
Should we also change from AVX10_1_AUX to AVX10V1AUX and also
for cpu bit name avx10_1_aux to avx10v1aux?
Thx,
Haochen
> VECARCH (avx10.2, AVX10_2, ANY_AVX10_2, set),
> SUBARCH (user_msr, USER_MSR, USER_MSR, false),
> SUBARCH (apx_f, APX_F, ANY_APX_F, false),
On 19.08.2026 10:34, Jiang, Haochen wrote:
>> From: Rohan Shenoy <RohanRadhesh.Shenoy@amd.com>
>> Sent: Wednesday, August 19, 2026 4:18 PM
>>
>> diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
>> index 1ce5a063c67..b41eeeddc71 100644
>> --- a/gas/config/tc-i386.c
>> +++ b/gas/config/tc-i386.c
>> @@ -1253,7 +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 (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
>> + VECARCH (avx10v1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
>
> Should we also change from AVX10_1_AUX to AVX10V1AUX and also
> for cpu bit name avx10_1_aux to avx10v1aux?
If at all, only to avx10_v1_aux / AVX10_V1_AUX imo, to keep the identifiers
readable. I'd question to value of the added 'v' / 'V' though.
Jan
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, August 19, 2026 4:37 PM
>
> On 19.08.2026 10:34, Jiang, Haochen wrote:
> >> From: Rohan Shenoy <RohanRadhesh.Shenoy@amd.com>
> >> Sent: Wednesday, August 19, 2026 4:18 PM
> >>
> >> diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
> >> index 1ce5a063c67..b41eeeddc71 100644
> >> --- a/gas/config/tc-i386.c
> >> +++ b/gas/config/tc-i386.c
> >> @@ -1253,7 +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 (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
> >> + VECARCH (avx10v1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
> >
> > Should we also change from AVX10_1_AUX to AVX10V1AUX and also
> > for cpu bit name avx10_1_aux to avx10v1aux?
>
> If at all, only to avx10_v1_aux / AVX10_V1_AUX imo, to keep the identifiers
> readable. I'd question to value of the added 'v' / 'V' though.
>
Oh. Mine. Jan is right here.
I messed GCC option naming trend with Binutils since I am actively working on
GCC patches recently. It should be avx10_v1_aux and AVX10_V1_AUX.
Thx,
Haochen
On 19.08.2026 10:18, Rohan Shenoy wrote:
> Align with GCC/Clang naming (-mavx10v2aux) as discussed [1].
This could do with a little bit more of an explanation. I don't quite see how
compiler command line options and assembler directive operands are in direct
need to be fully in sync.
> ---
> gas/config/tc-i386.c | 2 +-
> 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} | 2 +-
> .../{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} | 2 +-
> gas/testsuite/gas/i386/i386.exp | 8 ++++----
> 11 files changed, 11 insertions(+), 11 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} (84%)
> 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} (84%)
I may not want to veto these renames, but I certainly don't view them as useful.
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -1253,7 +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 (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
> + VECARCH (avx10v1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
> VECARCH (avx10.2, AVX10_2, ANY_AVX10_2, set),
So what about the avx10.1 and avx10.2 operands then? Are we meaning to become
inconsistent just because Clang and later maybe gcc are? In both I see -mavx10.1
and -mavx10.2. How does that fit with -mavx10v2aux (which Clang trunk, as
available on godbolt.org, doesn't even recognize yet, as opposed to gcc trunk)?
As that's still under development, may I suggest that instead Clang / gcc
reconsider the naming used?
If they don't want to switch to consistent naming, my next best suggestion for
gas would then be to recognize both avx10.1aux and avx10v1aux (and subsequently
similarly for v2-aux).
Jan
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, August 19, 2026 4:53 PM
>
> On 19.08.2026 10:18, Rohan Shenoy wrote:
> > Align with GCC/Clang naming (-mavx10v2aux) as discussed [1].
>
> This could do with a little bit more of an explanation. I don't quite see how
> compiler command line options and assembler directive operands are in direct
> need to be fully in sync.
>
> So what about the avx10.1 and avx10.2 operands then? Are we meaning to
> become
> inconsistent just because Clang and later maybe gcc are? In both I see -
> mavx10.1
> and -mavx10.2. How does that fit with -mavx10v2aux (which Clang trunk, as
> available on godbolt.org, doesn't even recognize yet, as opposed to gcc
> trunk)?
Clang did not land on trunk, while GCC lands currently.
> As that's still under development, may I suggest that instead Clang / gcc
> reconsider the naming used?
>
> If they don't want to switch to consistent naming, my next best suggestion for
> gas would then be to recognize both avx10.1aux and avx10v1aux (and
> subsequently similarly for v2-aux).
>
I am okay with that. I am not a big fan of the current aux naming convention in
CPUID from the very beginning.
Rohan, it is up to your (or AMD) call.
Thx,
Haochen
@@ -1253,7 +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 (avx10.1aux, AVX10_1_AUX, ANY_AVX10_1_AUX, set),
+ VECARCH (avx10v1aux, 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),
SUBARCH (apx_f, APX_F, ANY_APX_F, false),
@@ -220,7 +220,7 @@ accept various extension mnemonics. For example,
@code{avx10.1/512},
@code{avx10.1/256},
@code{avx10.1/128},
-@code{avx10.1aux},
+@code{avx10v1aux},
@code{user_msr},
@code{msr_imm},
@code{apx_f},
@@ -1719,7 +1719,7 @@ 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.2} @tab @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 84%
rename from gas/testsuite/gas/i386/avx10.1-aux-256-cvt.s
rename to gas/testsuite/gas/i386/avx10v1aux-256-cvt.s
@@ -1,6 +1,6 @@
# Check 32bit AVX10.1-aux/256 convert instructions
.arch generic32
- .arch .avx10.1aux/256
+ .arch .avx10v1aux/256
.equ AVX10_V1_AUX, 1
.include "avx10_2-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 84%
rename from gas/testsuite/gas/i386/avx10.1-aux-512-media.s
rename to gas/testsuite/gas/i386/avx10v1aux-512-media.s
@@ -1,6 +1,6 @@
# Check 32bit AVX10.1-aux/512 media instructions
.arch generic32
- .arch .avx10.1aux/512
+ .arch .avx10v1aux/512
.equ AVX10_V1_AUX, 1
.include "avx10_2-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"