[PATCH] x86: Disable AMX-TF32 by default

Haochen Jiang <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
Hi all,

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.

Tested on x86-64. Ok for trunk?

Thx,
Haochen

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.
---
 .../gas/i386/x86-64-amx-tf32-inval.l          |  2 +-
 .../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 +-
 opcodes/i386-init.h                           |  2 +-
 8 files changed, 19 insertions(+), 15 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",
-- 
2.31.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.