From: Haochen Jiang Date: Tue, 30 Jun 2026 07:58:35 +0000 (+0800) Subject: x86: Disable AMX-TF32 by default X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ddd9b65d036ac0356edac981f9089486923caed2;p=thirdparty%2Fbinutils-gdb.git 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 --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",