]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
x86: Disable AMX-TF32 by default
authorHaochen Jiang <haochen.jiang@intel.com>
Tue, 30 Jun 2026 07:58:35 +0000 (15:58 +0800)
committerHaochen Jiang <haochen.jiang@intel.com>
Thu, 2 Jul 2026 02:42:21 +0000 (10:42 +0800)
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.

gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l
gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s
gas/testsuite/gas/i386/x86-64-amx-tf32.s
gas/testsuite/gas/i386/x86-64-amx-transpose-inval.l
gas/testsuite/gas/i386/x86-64-amx-transpose-inval.s
gas/testsuite/gas/i386/x86-64-amx-transpose.s
opcodes/i386-gen.c

index 2ac207f90ca370b1aeb1cb16a046c0e4d7980d3f..81db933e3467ae32b7138642d536884a297fb439 100644 (file)
@@ -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'
index 7357c3c392ff257f59ee706227c215df372c4606..c7b4538e300df6dc3702eb64c3f0b973bae2204b 100644 (file)
@@ -1,6 +1,7 @@
 # Check Illegal 64bit AMX-TF32 instructions
 
        .text
+       .arch .amx_tf32
 _start:
        tmmultf32ps     %tmm1, %tmm1, %tmm2
        tmmultf32ps     %tmm1, %tmm2, %tmm1
index bb82380da48f7e81703db2cb716a42e41011d9bf..c7a4667b04f4ef5020caeb9467774f1a38d25099 100644 (file)
@@ -1,6 +1,7 @@
 # Check 64bit AMX-TF32 instructions
 
        .text
+       .arch .amx_tf32
 _start:
        tmmultf32ps     %tmm4, %tmm5, %tmm6
        tmmultf32ps     %tmm1, %tmm2, %tmm3
index 02ad60d834336b35a293b916b91338ff970e8b51..406be53fa2c29e6a5d86433d88331eb09f289657 100644 (file)
@@ -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
 .*: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'
index 7bbc1babb17451b5e2603cb97e2c4edf6860ac21..a2d8d3818b4457dfa1eafcef259b731b6ccb092f 100644 (file)
@@ -9,6 +9,7 @@ _start:
        ttmmultf32ps    %tmm1, %tmm2, %tmm3
 
        .arch .amx_transpose
+       .arch .amx_tf32
 _transpose:
        ttdpbf16ps      %tmm1, %tmm1, %tmm2
        ttdpbf16ps      %tmm1, %tmm2, %tmm1
index ef4a72a0cae00d903d9d12d39fdb3629984d3d81..885a1a68391a9d2b49ddc8f7564cd938e8cf7ce0 100644 (file)
@@ -1,6 +1,7 @@
 # Check 64bit AMX-TRANSPOSE instructions
 
        .arch .amx_transpose
+       .arch .amx_tf32
        .text
 _start:
        ttdpbf16ps      %tmm4, %tmm5, %tmm6
index be580d48a1893fccec00ab1d4995975da4f9e669..dd8f936edcda2edc80e37a30f3f33afafe925cf0 100644 (file)
@@ -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",