[binutils-gdb] x86: Disable AMX-TF32 by default
Haochen Jiang
jianghc@sourceware.org
Thu Jul 2 02:43:00 GMT 2026
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ddd9b65d036ac0356edac981f9089486923caed2
commit ddd9b65d036ac0356edac981f9089486923caed2
Author: Haochen Jiang <haochen.jiang@intel.com>
Date: Tue Jun 30 15:58:35 2026 +0800
x86: Disable AMX-TF32 by default
AMX-TF32 got depublished in ISE062. Just like AMX-TRANSPOSE, we
will keep the AMX-TF32 support for now in case there are x86 vendors
want to utilize the feature. AMX-TF32 will not show up on any
Intel/AMD hardware. Also in foreseeable future, no hardware will
support AMX-TF32, we will disable it by default. For testcases,
we will simply add .arch .amx_tf32 to keep the original test
intuition.
gas/ChangeLog:
* testsuite/gas/i386/x86-64-amx-tf32.s: Add .amx_tf32.
* testsuite/gas/i386/x86-64-amx-tf32-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-tf32-inval.l: Adjust line
number.
* testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
opcodes/ChangeLog:
* i386-gen.c: Disable AMX-TF32 by default.
* i386-init.h: Regenerated.
Diff:
---
gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l | 2 +-
gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s | 1 +
gas/testsuite/gas/i386/x86-64-amx-tf32.s | 1 +
.../gas/i386/x86-64-amx-transpose-inval.l | 24 +++++++++++-----------
.../gas/i386/x86-64-amx-transpose-inval.s | 1 +
gas/testsuite/gas/i386/x86-64-amx-transpose.s | 1 +
opcodes/i386-gen.c | 2 +-
7 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l b/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l
index 2ac207f90ca..81db933e346 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l
@@ -1,4 +1,4 @@
.* Assembler messages:
-.*:5: Error: all tmm registers must be distinct for `tmmultf32ps'
.*:6: Error: all tmm registers must be distinct for `tmmultf32ps'
.*:7: Error: all tmm registers must be distinct for `tmmultf32ps'
+.*:8: Error: all tmm registers must be distinct for `tmmultf32ps'
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s b/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s
index 7357c3c392f..c7b4538e300 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s
@@ -1,6 +1,7 @@
# Check Illegal 64bit AMX-TF32 instructions
.text
+ .arch .amx_tf32
_start:
tmmultf32ps %tmm1, %tmm1, %tmm2
tmmultf32ps %tmm1, %tmm2, %tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32.s b/gas/testsuite/gas/i386/x86-64-amx-tf32.s
index bb82380da48..c7a4667b04f 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32.s
@@ -1,6 +1,7 @@
# Check 64bit AMX-TF32 instructions
.text
+ .arch .amx_tf32
_start:
tmmultf32ps %tmm4, %tmm5, %tmm6
tmmultf32ps %tmm1, %tmm2, %tmm3
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.l b/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.l
index 02ad60d8343..406be53fa2c 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.l
@@ -4,16 +4,15 @@
.*:7: Error: `t2rpntlvwz1rs' is not supported on `x86_64'
.*:8: Error: `t2rpntlvwz1rst1' is not supported on `x86_64'
.*:9: Error: `ttmmultf32ps' is not supported on `x86_64'
-.*:13: Error: all tmm registers must be distinct for `ttdpbf16ps'
.*:14: Error: all tmm registers must be distinct for `ttdpbf16ps'
.*:15: Error: all tmm registers must be distinct for `ttdpbf16ps'
-.*:16: Error: all tmm registers must be distinct for `ttdpfp16ps'
+.*:16: Error: all tmm registers must be distinct for `ttdpbf16ps'
.*:17: Error: all tmm registers must be distinct for `ttdpfp16ps'
.*:18: Error: all tmm registers must be distinct for `ttdpfp16ps'
-.*:19: Error: all tmm registers must be distinct for `ttmmultf32ps'
+.*:19: Error: all tmm registers must be distinct for `ttdpfp16ps'
.*:20: Error: all tmm registers must be distinct for `ttmmultf32ps'
.*:21: Error: all tmm registers must be distinct for `ttmmultf32ps'
-.*:22: Error: `\(%rip\)' cannot be used here
+.*:22: Error: all tmm registers must be distinct for `ttmmultf32ps'
.*:23: Error: `\(%rip\)' cannot be used here
.*:24: Error: `\(%rip\)' cannot be used here
.*:25: Error: `\(%rip\)' cannot be used here
@@ -21,11 +20,12 @@
.*:27: Error: `\(%rip\)' cannot be used here
.*:28: Error: `\(%rip\)' cannot be used here
.*:29: Error: `\(%rip\)' cannot be used here
-.*:30: Warning: operand 2 `%tmm1' implicitly denotes `%tmm0' to `%tmm1' group in `t2rpntlvwz0'
-.*:31: Warning: operand 2 `%tmm3' implicitly denotes `%tmm2' to `%tmm3' group in `t2rpntlvwz0t1'
-.*:32: Warning: operand 2 `%tmm5' implicitly denotes `%tmm4' to `%tmm5' group in `t2rpntlvwz1'
-.*:33: Warning: operand 2 `%tmm7' implicitly denotes `%tmm6' to `%tmm7' group in `t2rpntlvwz1t1'
-.*:34: Warning: operand 2 `%tmm1' implicitly denotes `%tmm0' to `%tmm1' group in `t2rpntlvwz0rs'
-.*:35: Warning: operand 2 `%tmm3' implicitly denotes `%tmm2' to `%tmm3' group in `t2rpntlvwz0rst1'
-.*:36: Warning: operand 2 `%tmm5' implicitly denotes `%tmm4' to `%tmm5' group in `t2rpntlvwz1rs'
-.*:37: Warning: operand 2 `%tmm7' implicitly denotes `%tmm6' to `%tmm7' group in `t2rpntlvwz1rst1'
+.*:30: Error: `\(%rip\)' cannot be used here
+.*:31: Warning: operand 2 `%tmm1' implicitly denotes `%tmm0' to `%tmm1' group in `t2rpntlvwz0'
+.*:32: Warning: operand 2 `%tmm3' implicitly denotes `%tmm2' to `%tmm3' group in `t2rpntlvwz0t1'
+.*:33: Warning: operand 2 `%tmm5' implicitly denotes `%tmm4' to `%tmm5' group in `t2rpntlvwz1'
+.*:34: Warning: operand 2 `%tmm7' implicitly denotes `%tmm6' to `%tmm7' group in `t2rpntlvwz1t1'
+.*:35: Warning: operand 2 `%tmm1' implicitly denotes `%tmm0' to `%tmm1' group in `t2rpntlvwz0rs'
+.*:36: Warning: operand 2 `%tmm3' implicitly denotes `%tmm2' to `%tmm3' group in `t2rpntlvwz0rst1'
+.*:37: Warning: operand 2 `%tmm5' implicitly denotes `%tmm4' to `%tmm5' group in `t2rpntlvwz1rs'
+.*:38: Warning: operand 2 `%tmm7' implicitly denotes `%tmm6' to `%tmm7' group in `t2rpntlvwz1rst1'
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.s b/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.s
index 7bbc1babb17..a2d8d3818b4 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.s
@@ -9,6 +9,7 @@ _start:
ttmmultf32ps %tmm1, %tmm2, %tmm3
.arch .amx_transpose
+ .arch .amx_tf32
_transpose:
ttdpbf16ps %tmm1, %tmm1, %tmm2
ttdpbf16ps %tmm1, %tmm2, %tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose.s b/gas/testsuite/gas/i386/x86-64-amx-transpose.s
index ef4a72a0cae..885a1a68391 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose.s
@@ -1,6 +1,7 @@
# Check 64bit AMX-TRANSPOSE instructions
.arch .amx_transpose
+ .arch .amx_tf32
.text
_start:
ttdpbf16ps %tmm4, %tmm5, %tmm6
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index be580d48a18..dd8f936edcd 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -47,7 +47,7 @@ typedef struct dependency
static const dependency isa_dependencies[] =
{
{ "UNKNOWN",
- "~(IAMCU|MPX|AMX_TRANSPOSE)" },
+ "~(IAMCU|MPX|AMX_TRANSPOSE|AMX_TF32)" },
{ "GENERIC32",
"386" },
{ "GENERIC64",
More information about the Binutils-cvs
mailing list