x86: rename avx10.1aux to avx10v1aux

Message ID 20260819081827.1702668-1-RohanRadhesh.Shenoy@amd.com
State New
Headers
Series 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

Rohan Shenoy Aug. 19, 2026, 8:18 a.m. UTC
  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

Jiang, Haochen Aug. 19, 2026, 8:34 a.m. UTC | #1
> 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),
  
Jan Beulich Aug. 19, 2026, 8:36 a.m. UTC | #2
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
  
Jiang, Haochen Aug. 19, 2026, 8:39 a.m. UTC | #3
> 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
  
Jan Beulich Aug. 19, 2026, 8:53 a.m. UTC | #4
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
  
Jiang, Haochen Aug. 19, 2026, 8:59 a.m. UTC | #5
> 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
  

Patch

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),
   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),
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index 66d94a141b9..763dbfe484f 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -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}
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-256-cvt.d b/gas/testsuite/gas/i386/avx10v1aux-256-cvt.d
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
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-256-cvt.s b/gas/testsuite/gas/i386/avx10v1aux-256-cvt.s
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
index d2d572df459..d58b5a50551 100644
--- a/gas/testsuite/gas/i386/avx10.1-aux-256-cvt.s
+++ b/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"
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-256-media.l b/gas/testsuite/gas/i386/avx10v1aux-256-media.l
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
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-256-media.s b/gas/testsuite/gas/i386/avx10v1aux-256-media.s
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
index b08070a47e7..c2306302557 100644
--- a/gas/testsuite/gas/i386/avx10.1-aux-256-media.s
+++ b/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"
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-512-cvt.d b/gas/testsuite/gas/i386/avx10v1aux-512-cvt.d
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
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-512-cvt.s b/gas/testsuite/gas/i386/avx10v1aux-512-cvt.s
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
index ecfca29329a..5d8e2284c69 100644
--- a/gas/testsuite/gas/i386/avx10.1-aux-512-cvt.s
+++ b/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"
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-512-media.l b/gas/testsuite/gas/i386/avx10v1aux-512-media.l
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
diff --git a/gas/testsuite/gas/i386/avx10.1-aux-512-media.s b/gas/testsuite/gas/i386/avx10v1aux-512-media.s
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
index 3f67407bc45..7c8595fb7b9 100644
--- a/gas/testsuite/gas/i386/avx10.1-aux-512-media.s
+++ b/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"
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 22fd3412d53..49573a2396b 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -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"