[PATCH v2 2/2] x86: Disable AMX-TRANSPOSE by default

Haochen Jiang haochen.jiang@intel.com
Fri Oct 24 07:11:36 GMT 2025


Hi all,

This is the updated patch to disable AMX-TRANSPOSE by default.

Changes in v2:

  - Add AMX-TF32/AMX-MOVRS&AMX-TRANPOSE instructions invalid
    test into x86-64-amx-transpose-inval.s when it is under
    default arch.

Ok for trunk?

Thx,
Haochen

---

In Binutils, we choose to keep the AMX-TRANSPOSE support for
now in case there are vendors want to utilize the instructions
although the feature itself is de-published. AMX-TRANSPOSE will
not show up on any Intel/AMD hardware. Also in foreseeable future,
no hardware will support AMX-TRANSPOSE, we will disable it by
default.

gas/ChangeLog:

	* testsuite/gas/i386/x86-64-amx-movrs-intel.d:
	Move AMX-TRANSPOSE part to AMX-TRANSPOSE test.
	* testsuite/gas/i386/x86-64-amx-movrs.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-movrs.s: Ditto.
	* testsuite/gas/i386/x86-64-amx-tf32-bad.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-tf32-bad.s: Ditto.
	* testsuite/gas/i386/x86-64-amx-tf32-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-tf32-inval.l: Ditto.
	* testsuite/gas/i386/x86-64-amx-tf32-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-amx-tf32.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-tf32.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-evex-promoted.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-evex-promoted.s: Ditto.
	* testsuite/gas/i386/x86-64-amx-movrs-inval.l: Move
	AMX-TRANSPOSE part to AMX-TRANSPOSE file. Remove
	noamx_transpose test.
	* testsuite/gas/i386/x86-64-amx-movrs-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose-bad.d:
	Add AMX-MOVRS and AMX-TF32 related test.
	* testsuite/gas/i386/x86-64-amx-transpose-bad.s: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
	* testsuite/gas/i386/x86-64.exp: Remove AMX-MOVRS invalid test.
	* testsuite/gas/i386/x86-64-amx-transpose-apx-intel.d:
	New test originally comes from APX_F test.
	* testsuite/gas/i386/x86-64-amx-transpose-apx-wig.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose-apx.d: Ditto.
	* testsuite/gas/i386/x86-64-amx-transpose-apx.s: Ditto.

opcodes/ChangeLog:

	* i386-gen.c: Disable AMX-TRANSPOSE by default.
	* i386-init.h: Regenerated.
---
 .../gas/i386/x86-64-amx-movrs-intel.d         |  8 ----
 .../gas/i386/x86-64-amx-movrs-inval.l         | 13 ------
 .../gas/i386/x86-64-amx-movrs-inval.s         | 19 --------
 gas/testsuite/gas/i386/x86-64-amx-movrs.d     |  8 ----
 gas/testsuite/gas/i386/x86-64-amx-movrs.s     | 16 -------
 gas/testsuite/gas/i386/x86-64-amx-tf32-bad.d  |  3 --
 gas/testsuite/gas/i386/x86-64-amx-tf32-bad.s  |  9 ----
 .../gas/i386/x86-64-amx-tf32-intel.d          |  2 -
 .../gas/i386/x86-64-amx-tf32-inval.l          |  3 --
 .../gas/i386/x86-64-amx-tf32-inval.s          |  3 --
 gas/testsuite/gas/i386/x86-64-amx-tf32.d      |  2 -
 gas/testsuite/gas/i386/x86-64-amx-tf32.s      |  4 --
 .../gas/i386/x86-64-amx-transpose-apx-intel.d | 19 ++++++++
 .../gas/i386/x86-64-amx-transpose-apx-wig.d   | 19 ++++++++
 .../gas/i386/x86-64-amx-transpose-apx.d       | 17 +++++++
 .../gas/i386/x86-64-amx-transpose-apx.s       | 23 ++++++++++
 .../gas/i386/x86-64-amx-transpose-bad.d       |  3 ++
 .../gas/i386/x86-64-amx-transpose-bad.s       |  9 ++++
 .../gas/i386/x86-64-amx-transpose-intel.d     | 10 +++++
 .../gas/i386/x86-64-amx-transpose-inval.l     | 44 +++++++++++++------
 .../gas/i386/x86-64-amx-transpose-inval.s     | 19 ++++++++
 gas/testsuite/gas/i386/x86-64-amx-transpose.d | 10 +++++
 gas/testsuite/gas/i386/x86-64-amx-transpose.s | 21 +++++++++
 .../gas/i386/x86-64-apx-evex-promoted-intel.d | 16 -------
 .../gas/i386/x86-64-apx-evex-promoted-wig.d   | 16 -------
 .../gas/i386/x86-64-apx-evex-promoted.d       | 16 -------
 .../gas/i386/x86-64-apx-evex-promoted.s       | 16 -------
 gas/testsuite/gas/i386/x86-64.exp             |  1 -
 opcodes/i386-gen.c                            |  2 +-
 opcodes/i386-init.h                           |  2 +-
 30 files changed, 182 insertions(+), 171 deletions(-)
 delete mode 100644 gas/testsuite/gas/i386/x86-64-amx-movrs-inval.l
 delete mode 100644 gas/testsuite/gas/i386/x86-64-amx-movrs-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-amx-transpose-apx-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-amx-transpose-apx-wig.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-amx-transpose-apx.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-amx-transpose-apx.s

diff --git a/gas/testsuite/gas/i386/x86-64-amx-movrs-intel.d b/gas/testsuite/gas/i386/x86-64-amx-movrs-intel.d
index f4cd0bd0911..f0798f75a4d 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-movrs-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-movrs-intel.d
@@ -8,14 +8,6 @@ Disassembly of section \.text:
 
 #...
 [a-f0-9]+ <_intel>:
-\s*[a-f0-9]+:\s*c4 a5 78 f8 b4 f5 00 00 00 10\s+t2rpntlvwz0rs tmm6,\[rbp\+r14\*8\+0x10000000\]
-\s*[a-f0-9]+:\s*c4 c5 78 f8 14 21\s+t2rpntlvwz0rs tmm2,\[r9\+riz\*1\]
-\s*[a-f0-9]+:\s*c4 a5 78 f9 b4 f5 00 00 00 10\s+t2rpntlvwz0rst1 tmm6,\[rbp\+r14\*8\+0x10000000\]
-\s*[a-f0-9]+:\s*c4 c5 78 f9 14 21\s+t2rpntlvwz0rst1 tmm2,\[r9\+riz\*1\]
-\s*[a-f0-9]+:\s*c4 a5 79 f8 b4 f5 00 00 00 10\s+t2rpntlvwz1rs tmm6,\[rbp\+r14\*8\+0x10000000\]
-\s*[a-f0-9]+:\s*c4 c5 79 f8 14 21\s+t2rpntlvwz1rs tmm2,\[r9\+riz\*1\]
-\s*[a-f0-9]+:\s*c4 a5 79 f9 b4 f5 00 00 00 10\s+t2rpntlvwz1rst1 tmm6,\[rbp\+r14\*8\+0x10000000\]
-\s*[a-f0-9]+:\s*c4 c5 79 f9 14 21\s+t2rpntlvwz1rst1 tmm2,\[r9\+riz\*1\]
 \s*[a-f0-9]+:\s*c4 a2 7b 4a b4 f5 00 00 00 10\s+tileloaddrs tmm6,\[rbp\+r14\*8\+0x10000000\]
 \s*[a-f0-9]+:\s*c4 c2 7b 4a 1c 21\s+tileloaddrs tmm3,\[r9\+riz\*1\]
 \s*[a-f0-9]+:\s*c4 a2 79 4a b4 f5 00 00 00 10\s+tileloaddrst1 tmm6,\[rbp\+r14\*8\+0x10000000\]
diff --git a/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.l b/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.l
deleted file mode 100644
index aa49c0d3533..00000000000
--- a/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.l
+++ /dev/null
@@ -1,13 +0,0 @@
-.* Assembler messages:
-.*:5: Error: `\(%rip\)' cannot be used here
-.*:6: Error: `\(%rip\)' cannot be used here
-.*:7: Error: `\(%rip\)' cannot be used here
-.*:8: Error: `\(%rip\)' cannot be used here
-.*:9: Warning: operand 2 `%tmm1' implicitly denotes `%tmm0' to `%tmm1' group in `t2rpntlvwz0rs'
-.*:10: Warning: operand 2 `%tmm3' implicitly denotes `%tmm2' to `%tmm3' group in `t2rpntlvwz0rst1'
-.*:11: Warning: operand 2 `%tmm5' implicitly denotes `%tmm4' to `%tmm5' group in `t2rpntlvwz1rs'
-.*:12: Warning: operand 2 `%tmm7' implicitly denotes `%tmm6' to `%tmm7' group in `t2rpntlvwz1rst1'
-.*:16: Error: `t2rpntlvwz0rs' is not supported on `x86_64.noamx_transpose'
-.*:17: Error: `t2rpntlvwz0rst1' is not supported on `x86_64.noamx_transpose'
-.*:18: Error: `t2rpntlvwz1rs' is not supported on `x86_64.noamx_transpose'
-.*:19: Error: `t2rpntlvwz1rst1' is not supported on `x86_64.noamx_transpose'
diff --git a/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.s b/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.s
deleted file mode 100644
index 98b54f38ece..00000000000
--- a/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.s
+++ /dev/null
@@ -1,19 +0,0 @@
-# Check Invalid 64bit AMX-MOVRS instructions
-
-	.text
-_start:
-	t2rpntlvwz0rs	(%rip), %tmm2
-	t2rpntlvwz0rst1	(%rip), %tmm2
-	t2rpntlvwz1rs	(%rip), %tmm2
-	t2rpntlvwz1rst1	(%rip), %tmm2
-	t2rpntlvwz0rs	(%r9), %tmm1
-	t2rpntlvwz0rst1	(%r9), %tmm3
-	t2rpntlvwz1rs	(%r9), %tmm5
-	t2rpntlvwz1rst1	(%r9), %tmm7
-
-	.arch .noamx_transpose
-_transpose:
-	t2rpntlvwz0rs	(%r9), %tmm2
-	t2rpntlvwz0rst1	(%r9), %tmm2
-	t2rpntlvwz1rs	(%r9), %tmm2
-	t2rpntlvwz1rst1	(%r9), %tmm2
diff --git a/gas/testsuite/gas/i386/x86-64-amx-movrs.d b/gas/testsuite/gas/i386/x86-64-amx-movrs.d
index b0bc77e8f15..5c65d57de32 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-movrs.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-movrs.d
@@ -6,14 +6,6 @@
 Disassembly of section \.text:
 
 0+ <_start>:
-\s*[a-f0-9]+:\s*c4 a5 78 f8 b4 f5 00 00 00 10\s+t2rpntlvwz0rs 0x10000000\(%rbp,%r14,8\),%tmm6
-\s*[a-f0-9]+:\s*c4 c5 78 f8 14 21\s+t2rpntlvwz0rs \(%r9,%riz,1\),%tmm2
-\s*[a-f0-9]+:\s*c4 a5 78 f9 b4 f5 00 00 00 10\s+t2rpntlvwz0rst1 0x10000000\(%rbp,%r14,8\),%tmm6
-\s*[a-f0-9]+:\s*c4 c5 78 f9 14 21\s+t2rpntlvwz0rst1 \(%r9,%riz,1\),%tmm2
-\s*[a-f0-9]+:\s*c4 a5 79 f8 b4 f5 00 00 00 10\s+t2rpntlvwz1rs 0x10000000\(%rbp,%r14,8\),%tmm6
-\s*[a-f0-9]+:\s*c4 c5 79 f8 14 21\s+t2rpntlvwz1rs \(%r9,%riz,1\),%tmm2
-\s*[a-f0-9]+:\s*c4 a5 79 f9 b4 f5 00 00 00 10\s+t2rpntlvwz1rst1 0x10000000\(%rbp,%r14,8\),%tmm6
-\s*[a-f0-9]+:\s*c4 c5 79 f9 14 21\s+t2rpntlvwz1rst1 \(%r9,%riz,1\),%tmm2
 \s*[a-f0-9]+:\s*c4 a2 7b 4a b4 f5 00 00 00 10\s+tileloaddrs 0x10000000\(%rbp,%r14,8\),%tmm6
 \s*[a-f0-9]+:\s*c4 c2 7b 4a 1c 21\s+tileloaddrs \(%r9,%riz,1\),%tmm3
 \s*[a-f0-9]+:\s*c4 a2 79 4a b4 f5 00 00 00 10\s+tileloaddrst1 0x10000000\(%rbp,%r14,8\),%tmm6
diff --git a/gas/testsuite/gas/i386/x86-64-amx-movrs.s b/gas/testsuite/gas/i386/x86-64-amx-movrs.s
index 07b6aba2a57..6303b475b6c 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-movrs.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-movrs.s
@@ -2,14 +2,6 @@
 
 	.text
 _start:
-	t2rpntlvwz0rs	0x10000000(%rbp, %r14, 8), %tmm6
-	t2rpntlvwz0rs	(%r9), %tmm2
-	t2rpntlvwz0rst1	0x10000000(%rbp, %r14, 8), %tmm6
-	t2rpntlvwz0rst1	(%r9), %tmm2
-	t2rpntlvwz1rs	0x10000000(%rbp, %r14, 8), %tmm6
-	t2rpntlvwz1rs	(%r9), %tmm2
-	t2rpntlvwz1rst1	0x10000000(%rbp, %r14, 8), %tmm6
-	t2rpntlvwz1rst1	(%r9), %tmm2
 	tileloaddrs	0x10000000(%rbp, %r14, 8), %tmm6
 	tileloaddrs	(%r9), %tmm3
 	tileloaddrst1	0x10000000(%rbp, %r14, 8), %tmm6
@@ -17,14 +9,6 @@ _start:
 
 _intel:
 	.intel_syntax noprefix
-	t2rpntlvwz0rs	tmm6, [rbp+r14*8+0x10000000]
-	t2rpntlvwz0rs	tmm2, [r9]
-	t2rpntlvwz0rst1	tmm6, [rbp+r14*8+0x10000000]
-	t2rpntlvwz0rst1	tmm2, [r9]
-	t2rpntlvwz1rs	tmm6, [rbp+r14*8+0x10000000]
-	t2rpntlvwz1rs	tmm2, [r9]
-	t2rpntlvwz1rst1	tmm6, [rbp+r14*8+0x10000000]
-	t2rpntlvwz1rst1	tmm2, [r9]
 	tileloaddrs	tmm6, [rbp+r14*8+0x10000000]
 	tileloaddrs	tmm3, [r9]
 	tileloaddrst1	tmm6, [rbp+r14*8+0x10000000]
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.d b/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.d
index bcf8674b06c..a3f2185f465 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.d
@@ -10,7 +10,4 @@ Disassembly of section \.text:
 \s*[a-f0-9]+:\s*c4 e2 71 48 d1\s+tmmultf32ps %tmm1/\(bad\),%tmm1/\(bad\),%tmm2
 \s*[a-f0-9]+:\s*c4 e2 69 48 c9\s+tmmultf32ps %tmm2,%tmm1/\(bad\),%tmm1/\(bad\)
 \s*[a-f0-9]+:\s*c4 e2 71 48 ca\s+tmmultf32ps %tmm1/\(bad\),%tmm2,%tmm1\/\(bad\)
-\s*[a-f0-9]+:\s*c4 e2 70 48 d1\s+ttmmultf32ps %tmm1/\(bad\),%tmm1/\(bad\),%tmm2
-\s*[a-f0-9]+:\s*c4 e2 68 48 c9\s+ttmmultf32ps %tmm2,%tmm1/\(bad\),%tmm1/\(bad\)
-\s*[a-f0-9]+:\s*c4 e2 70 48 ca\s+ttmmultf32ps %tmm1/\(bad\),%tmm2,%tmm1/\(bad\)
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.s b/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.s
index 6d0a2bb9cdc..a4424e9ddbb 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32-bad.s
@@ -7,12 +7,3 @@
 
 	# tmmultf32ps %tmm2, %tmm1, %tmm1 all tmm registers should be distinct
 	.insn VEX.128.66.0F38.W0 0x48, %tmm2, %tmm1, %tmm1
-
-	# ttmmultf32ps %tmm1, %tmm1, %tmm2 all tmm registers should be distinct
-	.insn VEX.128.NP.0F38.W0 0x48, %tmm1, %tmm1, %tmm2
-
-	# ttmmultf32ps %tmm1, %tmm2, %tmm1 all tmm registers should be distinct
-	.insn VEX.128.NP.0F38.W0 0x48, %tmm1, %tmm2, %tmm1
-
-	# ttmmultf32ps %tmm2, %tmm1, %tmm1 all tmm registers should be distinct
-	.insn VEX.128.NP.0F38.W0 0x48, %tmm2, %tmm1, %tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32-intel.d b/gas/testsuite/gas/i386/x86-64-amx-tf32-intel.d
index cc9a1d34061..807f3430900 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32-intel.d
@@ -10,6 +10,4 @@ Disassembly of section \.text:
 [a-f0-9]+ <_intel>:
 \s*[a-f0-9]+:\s*c4 e2 59 48 f5\s+tmmultf32ps tmm6,tmm5,tmm4
 \s*[a-f0-9]+:\s*c4 e2 71 48 da\s+tmmultf32ps tmm3,tmm2,tmm1
-\s*[a-f0-9]+:\s*c4 e2 58 48 f5\s+ttmmultf32ps tmm6,tmm5,tmm4
-\s*[a-f0-9]+:\s*c4 e2 70 48 da\s+ttmmultf32ps tmm3,tmm2,tmm1
 #pass
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 ea6004936e6..2ac207f90ca 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.l
@@ -2,6 +2,3 @@
 .*: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 `ttmmultf32ps'
-.*:9: Error: all tmm registers must be distinct for `ttmmultf32ps'
-.*:10: Error: all tmm registers must be distinct for `ttmmultf32ps'
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 56a3b46e6ea..7357c3c392f 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32-inval.s
@@ -5,6 +5,3 @@ _start:
 	tmmultf32ps	%tmm1, %tmm1, %tmm2
 	tmmultf32ps	%tmm1, %tmm2, %tmm1
 	tmmultf32ps	%tmm2, %tmm1, %tmm1
-	ttmmultf32ps	%tmm1, %tmm1, %tmm2
-	ttmmultf32ps	%tmm1, %tmm2, %tmm1
-	ttmmultf32ps	%tmm2, %tmm1, %tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32.d b/gas/testsuite/gas/i386/x86-64-amx-tf32.d
index 4fa91cbc040..cd321ba48aa 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32.d
@@ -8,6 +8,4 @@ Disassembly of section \.text:
 0+ <_start>:
 \s*[a-f0-9]+:\s*c4 e2 59 48 f5\s+tmmultf32ps %tmm4,%tmm5,%tmm6
 \s*[a-f0-9]+:\s*c4 e2 71 48 da\s+tmmultf32ps %tmm1,%tmm2,%tmm3
-\s*[a-f0-9]+:\s*c4 e2 58 48 f5\s+ttmmultf32ps %tmm4,%tmm5,%tmm6
-\s*[a-f0-9]+:\s*c4 e2 70 48 da\s+ttmmultf32ps %tmm1,%tmm2,%tmm3
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-amx-tf32.s b/gas/testsuite/gas/i386/x86-64-amx-tf32.s
index 9c1433ed49b..bb82380da48 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-tf32.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-tf32.s
@@ -4,12 +4,8 @@
 _start:
 	tmmultf32ps	%tmm4, %tmm5, %tmm6
 	tmmultf32ps	%tmm1, %tmm2, %tmm3
-	ttmmultf32ps	%tmm4, %tmm5, %tmm6
-	ttmmultf32ps	%tmm1, %tmm2, %tmm3
 
 _intel:
 	.intel_syntax noprefix
 	tmmultf32ps	tmm6, tmm5, tmm4
 	tmmultf32ps	tmm3, tmm2, tmm1
-	ttmmultf32ps	tmm6, tmm5, tmm4
-	ttmmultf32ps	tmm3, tmm2, tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-apx-intel.d b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx-intel.d
new file mode 100644
index 00000000000..84ea47ebf5d
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx-intel.d
@@ -0,0 +1,19 @@
+#objdump: -dw -Mintel
+#name: x86_64 AMX_TRANSPOSE APX_F EVEX-Promoted insns (Intel disassembly)
+#source: x86-64-amx-transpose-apx.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+#...
+[a-f0-9]+ <_intel>:
+[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0 tmm6,\[r31\+rax\*8\+0x123\]
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs tmm6,\[r31\+rax\*8\+0x123\]
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1 tmm6,\[r31\+rax\*8\+0x123\]
+[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1 tmm6,\[r31\+rax\*8\+0x123\]
+[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1 tmm6,\[r31\+rax\*8\+0x123\]
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs tmm6,\[r31\+rax\*8\+0x123\]
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1 tmm6,\[r31\+rax\*8\+0x123\]
+[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1 tmm6,\[r31\+rax\*8\+0x123\]
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-apx-wig.d b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx-wig.d
new file mode 100644
index 00000000000..c15ed2904da
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx-wig.d
@@ -0,0 +1,19 @@
+#as: -mevexwig=1
+#objdump: -dw
+#name: x86_64 AMX_TRANSPOSE APX_F EVEX-Promoted insns w/ -mevexwig=1
+#source: x86-64-amx-transpose-apx.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-apx.d b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx.d
new file mode 100644
index 00000000000..f6d42d1bd06
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx.d
@@ -0,0 +1,17 @@
+#objdump: -dw
+#name: x86_64 APX_F EVEX-Promoted insns
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-apx.s b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx.s
new file mode 100644
index 00000000000..1c124de2a4c
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-apx.s
@@ -0,0 +1,23 @@
+# Check 64bit AMX-TRANSPOSE APX_F EVEX-Promoted instructions.
+
+	.arch .amx_transpose
+	.text
+_start:
+	t2rpntlvwz0	0x123(%r31,%rax,8),%tmm6
+	t2rpntlvwz0rs	0x123(%r31,%rax,8),%tmm6
+	t2rpntlvwz0rst1	0x123(%r31,%rax,8),%tmm6
+	t2rpntlvwz0t1	0x123(%r31,%rax,8),%tmm6
+	t2rpntlvwz1	0x123(%r31,%rax,8),%tmm6
+	t2rpntlvwz1rs	0x123(%r31,%rax,8),%tmm6
+	t2rpntlvwz1rst1	0x123(%r31,%rax,8),%tmm6
+	t2rpntlvwz1t1	0x123(%r31,%rax,8),%tmm6
+
+_intel:
+	t2rpntlvwz0	tmm6,[r31+rax*8+0x123]
+	t2rpntlvwz0rs	tmm6,[r31+rax*8+0x123]
+	t2rpntlvwz0rst1	tmm6,[r31+rax*8+0x123]
+	t2rpntlvwz0t1	tmm6,[r31+rax*8+0x123]
+	t2rpntlvwz1	tmm6,[r31+rax*8+0x123]
+	t2rpntlvwz1rs	tmm6,[r31+rax*8+0x123]
+	t2rpntlvwz1rst1	tmm6,[r31+rax*8+0x123]
+	t2rpntlvwz1t1	tmm6,[r31+rax*8+0x123]
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.d b/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.d
index 5977c309b20..9eb3705a695 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.d
@@ -13,5 +13,8 @@ Disassembly of section \.text:
 \s*[a-f0-9]+:\s*c4 e2 73 6c d1\s+ttdpfp16ps %tmm1/\(bad\),%tmm1/\(bad\),%tmm2
 \s*[a-f0-9]+:\s*c4 e2 6b 6c c9\s+ttdpfp16ps %tmm2,%tmm1/\(bad\),%tmm1/\(bad\)
 \s*[a-f0-9]+:\s*c4 e2 73 6c ca\s+ttdpfp16ps %tmm1/\(bad\),%tmm2,%tmm1/\(bad\)
+\s*[a-f0-9]+:\s*c4 e2 70 48 d1\s+ttmmultf32ps %tmm1/\(bad\),%tmm1/\(bad\),%tmm2
+\s*[a-f0-9]+:\s*c4 e2 68 48 c9\s+ttmmultf32ps %tmm2,%tmm1/\(bad\),%tmm1/\(bad\)
+\s*[a-f0-9]+:\s*c4 e2 70 48 ca\s+ttmmultf32ps %tmm1/\(bad\),%tmm2,%tmm1/\(bad\)
 #pass
 
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.s b/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.s
index 060045146aa..89733d44ec2 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-bad.s
@@ -16,3 +16,12 @@
 
 	# ttdpfp16ps %tmm2, %tmm1, %tmm1 all tmm registers should be distinct
 	.insn VEX.128.f2.0F38.W0 0x6c, %tmm2, %tmm1, %tmm1
+
+	# ttmmultf32ps %tmm1, %tmm1, %tmm2 all tmm registers should be distinct
+	.insn VEX.128.NP.0F38.W0 0x48, %tmm1, %tmm1, %tmm2
+
+	# ttmmultf32ps %tmm1, %tmm2, %tmm1 all tmm registers should be distinct
+	.insn VEX.128.NP.0F38.W0 0x48, %tmm1, %tmm2, %tmm1
+
+	# ttmmultf32ps %tmm2, %tmm1, %tmm1 all tmm registers should be distinct
+	.insn VEX.128.NP.0F38.W0 0x48, %tmm2, %tmm1, %tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose-intel.d b/gas/testsuite/gas/i386/x86-64-amx-transpose-intel.d
index e50f09436c8..febd853ecfb 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-intel.d
@@ -22,6 +22,14 @@ Disassembly of section \.text:
 \s*[a-f0-9]+:\s*c4 c2 79 6e 14 21\s+t2rpntlvwz1 tmm2,\[r9\+riz\*1\]
 \s*[a-f0-9]+:\s*c4 a2 79 6f b4 f5 00 00 00 10\s+t2rpntlvwz1t1 tmm6,\[rbp\+r14\*8\+0x10000000\]
 \s*[a-f0-9]+:\s*c4 c2 79 6f 14 21\s+t2rpntlvwz1t1 tmm2,\[r9\+riz\*1\]
+\s*[a-f0-9]+:\s*c4 a5 78 f8 b4 f5 00 00 00 10\s+t2rpntlvwz0rs tmm6,\[rbp\+r14\*8\+0x10000000\]
+\s*[a-f0-9]+:\s*c4 c5 78 f8 14 21\s+t2rpntlvwz0rs tmm2,\[r9\+riz\*1\]
+\s*[a-f0-9]+:\s*c4 a5 78 f9 b4 f5 00 00 00 10\s+t2rpntlvwz0rst1 tmm6,\[rbp\+r14\*8\+0x10000000\]
+\s*[a-f0-9]+:\s*c4 c5 78 f9 14 21\s+t2rpntlvwz0rst1 tmm2,\[r9\+riz\*1\]
+\s*[a-f0-9]+:\s*c4 a5 79 f8 b4 f5 00 00 00 10\s+t2rpntlvwz1rs tmm6,\[rbp\+r14\*8\+0x10000000\]
+\s*[a-f0-9]+:\s*c4 c5 79 f8 14 21\s+t2rpntlvwz1rs tmm2,\[r9\+riz\*1\]
+\s*[a-f0-9]+:\s*c4 a5 79 f9 b4 f5 00 00 00 10\s+t2rpntlvwz1rst1 tmm6,\[rbp\+r14\*8\+0x10000000\]
+\s*[a-f0-9]+:\s*c4 c5 79 f9 14 21\s+t2rpntlvwz1rst1 tmm2,\[r9\+riz\*1\]
 \s*[a-f0-9]+:\s*c4 e2 58 6b f5\s+tconjtcmmimfp16ps tmm6,tmm5,tmm4
 \s*[a-f0-9]+:\s*c4 e2 70 6b da\s+tconjtcmmimfp16ps tmm3,tmm2,tmm1
 \s*[a-f0-9]+:\s*c4 e2 79 6b f5\s+tconjtfp16 tmm6,tmm5
@@ -30,4 +38,6 @@ Disassembly of section \.text:
 \s*[a-f0-9]+:\s*c4 e2 73 6b da\s+ttcmmimfp16ps tmm3,tmm2,tmm1
 \s*[a-f0-9]+:\s*c4 e2 5a 6b f5\s+ttcmmrlfp16ps tmm6,tmm5,tmm4
 \s*[a-f0-9]+:\s*c4 e2 72 6b da\s+ttcmmrlfp16ps tmm3,tmm2,tmm1
+\s*[a-f0-9]+:\s*c4 e2 58 48 f5\s+ttmmultf32ps tmm6,tmm5,tmm4
+\s*[a-f0-9]+:\s*c4 e2 70 48 da\s+ttmmultf32ps tmm3,tmm2,tmm1
 #pass
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 76baedb6ecc..02ad60d8343 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.l
@@ -1,15 +1,31 @@
 .* Assembler messages:
-.*:5: Error: all tmm registers must be distinct for `ttdpbf16ps'
-.*:6: Error: all tmm registers must be distinct for `ttdpbf16ps'
-.*:7: Error: all tmm registers must be distinct for `ttdpbf16ps'
-.*:8: Error: all tmm registers must be distinct for `ttdpfp16ps'
-.*:9: Error: all tmm registers must be distinct for `ttdpfp16ps'
-.*:10: Error: all tmm registers must be distinct for `ttdpfp16ps'
-.*:11: Error: `\(%rip\)' cannot be used here
-.*:12: Error: `\(%rip\)' cannot be used here
-.*:13: Error: `\(%rip\)' cannot be used here
-.*:14: Error: `\(%rip\)' cannot be used here
-.*:15: Warning: operand 2 `%tmm1' implicitly denotes `%tmm0' to `%tmm1' group in `t2rpntlvwz0'
-.*:16: Warning: operand 2 `%tmm3' implicitly denotes `%tmm2' to `%tmm3' group in `t2rpntlvwz0t1'
-.*:17: Warning: operand 2 `%tmm5' implicitly denotes `%tmm4' to `%tmm5' group in `t2rpntlvwz1'
-.*:18: Warning: operand 2 `%tmm7' implicitly denotes `%tmm6' to `%tmm7' group in `t2rpntlvwz1t1'
+.*:5: Error: `t2rpntlvwz0rs' is not supported on `x86_64'
+.*:6: Error: `t2rpntlvwz0rst1' is not supported on `x86_64'
+.*: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'
+.*: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'
+.*: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
+.*:23: Error: `\(%rip\)' cannot be used here
+.*:24: Error: `\(%rip\)' cannot be used here
+.*:25: Error: `\(%rip\)' cannot be used here
+.*:26: 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'
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 7002b3bb160..7bbc1babb17 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose-inval.s
@@ -2,17 +2,36 @@
 
 	.text
 _start:
+	t2rpntlvwz0rs	(%r9), %tmm2
+	t2rpntlvwz0rst1	(%r9), %tmm2
+	t2rpntlvwz1rs	(%r9), %tmm2
+	t2rpntlvwz1rst1	(%r9), %tmm2
+	ttmmultf32ps	%tmm1, %tmm2, %tmm3
+
+	.arch .amx_transpose
+_transpose:
 	ttdpbf16ps	%tmm1, %tmm1, %tmm2
 	ttdpbf16ps	%tmm1, %tmm2, %tmm1
 	ttdpbf16ps	%tmm2, %tmm1, %tmm1
 	ttdpfp16ps	%tmm1, %tmm1, %tmm2
 	ttdpfp16ps	%tmm1, %tmm2, %tmm1
 	ttdpfp16ps	%tmm2, %tmm1, %tmm1
+	ttmmultf32ps	%tmm1, %tmm1, %tmm2
+	ttmmultf32ps	%tmm1, %tmm2, %tmm1
+	ttmmultf32ps	%tmm2, %tmm1, %tmm1
 	t2rpntlvwz0	(%rip), %tmm2
 	t2rpntlvwz0t1	(%rip), %tmm2
 	t2rpntlvwz1	(%rip), %tmm2
 	t2rpntlvwz1t1	(%rip), %tmm2
+	t2rpntlvwz0rs	(%rip), %tmm2
+	t2rpntlvwz0rst1	(%rip), %tmm2
+	t2rpntlvwz1rs	(%rip), %tmm2
+	t2rpntlvwz1rst1	(%rip), %tmm2
 	t2rpntlvwz0	(%r9), %tmm1
 	t2rpntlvwz0t1	(%r9), %tmm3
 	t2rpntlvwz1	(%r9), %tmm5
 	t2rpntlvwz1t1	(%r9), %tmm7
+	t2rpntlvwz0rs	(%r9), %tmm1
+	t2rpntlvwz0rst1	(%r9), %tmm3
+	t2rpntlvwz1rs	(%r9), %tmm5
+	t2rpntlvwz1rst1	(%r9), %tmm7
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose.d b/gas/testsuite/gas/i386/x86-64-amx-transpose.d
index 47f989136a4..ec009e1ed60 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose.d
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose.d
@@ -20,6 +20,14 @@ Disassembly of section \.text:
 \s*[a-f0-9]+:\s*c4 c2 79 6e 14 21\s+t2rpntlvwz1 \(%r9,%riz,1\),%tmm2
 \s*[a-f0-9]+:\s*c4 a2 79 6f b4 f5 00 00 00 10\s+t2rpntlvwz1t1 0x10000000\(%rbp,%r14,8\),%tmm6
 \s*[a-f0-9]+:\s*c4 c2 79 6f 14 21\s+t2rpntlvwz1t1 \(%r9,%riz,1\),%tmm2
+\s*[a-f0-9]+:\s*c4 a5 78 f8 b4 f5 00 00 00 10\s+t2rpntlvwz0rs 0x10000000\(%rbp,%r14,8\),%tmm6
+\s*[a-f0-9]+:\s*c4 c5 78 f8 14 21\s+t2rpntlvwz0rs \(%r9,%riz,1\),%tmm2
+\s*[a-f0-9]+:\s*c4 a5 78 f9 b4 f5 00 00 00 10\s+t2rpntlvwz0rst1 0x10000000\(%rbp,%r14,8\),%tmm6
+\s*[a-f0-9]+:\s*c4 c5 78 f9 14 21\s+t2rpntlvwz0rst1 \(%r9,%riz,1\),%tmm2
+\s*[a-f0-9]+:\s*c4 a5 79 f8 b4 f5 00 00 00 10\s+t2rpntlvwz1rs 0x10000000\(%rbp,%r14,8\),%tmm6
+\s*[a-f0-9]+:\s*c4 c5 79 f8 14 21\s+t2rpntlvwz1rs \(%r9,%riz,1\),%tmm2
+\s*[a-f0-9]+:\s*c4 a5 79 f9 b4 f5 00 00 00 10\s+t2rpntlvwz1rst1 0x10000000\(%rbp,%r14,8\),%tmm6
+\s*[a-f0-9]+:\s*c4 c5 79 f9 14 21\s+t2rpntlvwz1rst1 \(%r9,%riz,1\),%tmm2
 \s*[a-f0-9]+:\s*c4 e2 58 6b f5\s+tconjtcmmimfp16ps %tmm4,%tmm5,%tmm6
 \s*[a-f0-9]+:\s*c4 e2 70 6b da\s+tconjtcmmimfp16ps %tmm1,%tmm2,%tmm3
 \s*[a-f0-9]+:\s*c4 e2 79 6b f5\s+tconjtfp16 %tmm5,%tmm6
@@ -28,4 +36,6 @@ Disassembly of section \.text:
 \s*[a-f0-9]+:\s*c4 e2 73 6b da\s+ttcmmimfp16ps %tmm1,%tmm2,%tmm3
 \s*[a-f0-9]+:\s*c4 e2 5a 6b f5\s+ttcmmrlfp16ps %tmm4,%tmm5,%tmm6
 \s*[a-f0-9]+:\s*c4 e2 72 6b da\s+ttcmmrlfp16ps %tmm1,%tmm2,%tmm3
+\s*[a-f0-9]+:\s*c4 e2 58 48 f5\s+ttmmultf32ps %tmm4,%tmm5,%tmm6
+\s*[a-f0-9]+:\s*c4 e2 70 48 da\s+ttmmultf32ps %tmm1,%tmm2,%tmm3
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-amx-transpose.s b/gas/testsuite/gas/i386/x86-64-amx-transpose.s
index b13c3406288..ef4a72a0cae 100644
--- a/gas/testsuite/gas/i386/x86-64-amx-transpose.s
+++ b/gas/testsuite/gas/i386/x86-64-amx-transpose.s
@@ -1,5 +1,6 @@
 # Check 64bit AMX-TRANSPOSE instructions
 
+	.arch .amx_transpose
 	.text
 _start:
 	ttdpbf16ps	%tmm4, %tmm5, %tmm6
@@ -16,6 +17,14 @@ _start:
 	t2rpntlvwz1	(%r9), %tmm2
 	t2rpntlvwz1t1	0x10000000(%rbp, %r14, 8), %tmm6
 	t2rpntlvwz1t1	(%r9), %tmm2
+	t2rpntlvwz0rs	0x10000000(%rbp, %r14, 8), %tmm6
+	t2rpntlvwz0rs	(%r9), %tmm2
+	t2rpntlvwz0rst1	0x10000000(%rbp, %r14, 8), %tmm6
+	t2rpntlvwz0rst1	(%r9), %tmm2
+	t2rpntlvwz1rs	0x10000000(%rbp, %r14, 8), %tmm6
+	t2rpntlvwz1rs	(%r9), %tmm2
+	t2rpntlvwz1rst1	0x10000000(%rbp, %r14, 8), %tmm6
+	t2rpntlvwz1rst1	(%r9), %tmm2
 	tconjtcmmimfp16ps	%tmm4, %tmm5, %tmm6
 	tconjtcmmimfp16ps	%tmm1, %tmm2, %tmm3
 	tconjtfp16	%tmm5, %tmm6
@@ -24,6 +33,8 @@ _start:
 	ttcmmimfp16ps	%tmm1, %tmm2, %tmm3
 	ttcmmrlfp16ps	%tmm4, %tmm5, %tmm6
 	ttcmmrlfp16ps	%tmm1, %tmm2, %tmm3
+	ttmmultf32ps	%tmm4, %tmm5, %tmm6
+	ttmmultf32ps	%tmm1, %tmm2, %tmm3
 
 _intel:
 	.intel_syntax noprefix
@@ -41,6 +52,14 @@ _intel:
 	t2rpntlvwz1	tmm2, [r9]
 	t2rpntlvwz1t1	tmm6, [rbp+r14*8+0x10000000]
 	t2rpntlvwz1t1	tmm2, [r9]
+	t2rpntlvwz0rs	tmm6, [rbp+r14*8+0x10000000]
+	t2rpntlvwz0rs	tmm2, [r9]
+	t2rpntlvwz0rst1	tmm6, [rbp+r14*8+0x10000000]
+	t2rpntlvwz0rst1	tmm2, [r9]
+	t2rpntlvwz1rs	tmm6, [rbp+r14*8+0x10000000]
+	t2rpntlvwz1rs	tmm2, [r9]
+	t2rpntlvwz1rst1	tmm6, [rbp+r14*8+0x10000000]
+	t2rpntlvwz1rst1	tmm2, [r9]
 	tconjtcmmimfp16ps       tmm6, tmm5, tmm4
 	tconjtcmmimfp16ps       tmm3, tmm2, tmm1
 	tconjtfp16      tmm6, tmm5
@@ -49,3 +68,5 @@ _intel:
 	ttcmmimfp16ps   tmm3, tmm2, tmm1
 	ttcmmrlfp16ps   tmm6, tmm5, tmm4
 	ttcmmrlfp16ps   tmm3, tmm2, tmm1
+	ttmmultf32ps	tmm6, tmm5, tmm4
+	ttmmultf32ps	tmm3, tmm2, tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
index d5476d3dff3..68c73e9385c 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
@@ -139,14 +139,6 @@ Disassembly of section \.text:
 [	 ]*[a-f0-9]+:[	 ]*62 52 87 00 f7 df[	 ]+shrx[	 ]+r11,r15,r31
 [	 ]*[a-f0-9]+:[	 ]*62 5a 87 00 f7 bc 87 23 01 00 00[	 ]+shrx[	 ]+r15,QWORD PTR \[r31\+rax\*4\+0x123\],r31
 [	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 49 84 87 23 01 00 00[	 ]+sttilecfg[	 ]+\[r31\+rax\*4\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1 tmm6,\[r31\+rax\*8\+0x123\]
 [	 ]*[a-f0-9]+:[	 ]*62 da 7f 08 4b b4 87 23 01 00 00[	 ]+tileloadd tmm6,\[r31\+rax\*4\+0x123\]
 [	 ]*[a-f0-9]+:[	 ]*62 b2 7b 08 4a b4 fd 00 00 00 10[	 ]+tileloaddrs[	 ]+tmm6,\[rbp\+r31\*8\+0x10000000\]
 [	 ]*[a-f0-9]+:[	 ]*62 fa 7f 08 4a 1c 20[	 ]+tileloaddrs[	 ]+tmm3,\[r16\+riz\*1\]
@@ -286,14 +278,6 @@ Disassembly of section \.text:
 [	 ]*[a-f0-9]+:[	 ]*62 52 87 00 f7 df[	 ]+shrx[	 ]+r11,r15,r31
 [	 ]*[a-f0-9]+:[	 ]*62 5a 87 00 f7 bc 87 23 01 00 00[	 ]+shrx[	 ]+r15,QWORD PTR \[r31\+rax\*4\+0x123\],r31
 [	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 49 84 87 23 01 00 00[	 ]+sttilecfg[	 ]+\[r31\+rax\*4\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1 tmm6,\[r31\+rax\*8\+0x123\]
 [	 ]*[a-f0-9]+:[	 ]*62 da 7f 08 4b b4 87 23 01 00 00[	 ]+tileloadd tmm6,\[r31\+rax\*4\+0x123\]
 [	 ]*[a-f0-9]+:[	 ]*62 b2 7b 08 4a b4 fd 00 00 00 10[	 ]+tileloaddrs[	 ]+tmm6,\[rbp\+r31\*8\+0x10000000\]
 [	 ]*[a-f0-9]+:[	 ]*62 fa 7f 08 4a 1c 20[	 ]+tileloaddrs[	 ]+tmm3,\[r16\+riz\*1\]
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
index c445a44df97..3ced6d5d90c 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
@@ -139,14 +139,6 @@ Disassembly of section \.text:
 [	 ]*[a-f0-9]+:[	 ]*62 52 87 00 f7 df[	 ]+shrx[	 ]+%r31,%r15,%r11
 [	 ]*[a-f0-9]+:[	 ]*62 5a 87 00 f7 bc 87 23 01 00 00[	 ]+shrx[	 ]+%r31,0x123\(%r31,%rax,4\),%r15
 [	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 49 84 87 23 01 00 00[	 ]+sttilecfg[	 ]+0x123\(%r31,%rax,4\)
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 da 7f 08 4b b4 87 23 01 00 00[	 ]+tileloadd[	 ]+0x123\(%r31,%rax,4\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 b2 7b 08 4a b4 fd 00 00 00 10[	 ]+tileloaddrs[  ]+0x10000000\(%rbp,%r31,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 fa 7f 08 4a 1c 20[	 ]+tileloaddrs[	 ]+\(%r16,%riz,1\),%tmm3
@@ -286,14 +278,6 @@ Disassembly of section \.text:
 [	 ]*[a-f0-9]+:[	 ]*62 52 87 00 f7 df[	 ]+shrx[	 ]+%r31,%r15,%r11
 [	 ]*[a-f0-9]+:[	 ]*62 5a 87 00 f7 bc 87 23 01 00 00[	 ]+shrx[	 ]+%r31,0x123\(%r31,%rax,4\),%r15
 [	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 49 84 87 23 01 00 00[	 ]+sttilecfg[	 ]+0x123\(%r31,%rax,4\)
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 da 7f 08 4b b4 87 23 01 00 00[	 ]+tileloadd[	 ]+0x123\(%r31,%rax,4\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 b2 7b 08 4a b4 fd 00 00 00 10[	 ]+tileloaddrs[  ]+0x10000000\(%rbp,%r31,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 fa 7f 08 4a 1c 20[	 ]+tileloaddrs[	 ]+\(%r16,%riz,1\),%tmm3
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
index d9ebf3b1d53..64498ff088f 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
@@ -139,14 +139,6 @@ Disassembly of section \.text:
 [	 ]*[a-f0-9]+:[	 ]*62 52 87 00 f7 df[	 ]+shrx[	 ]+%r31,%r15,%r11
 [	 ]*[a-f0-9]+:[	 ]*62 5a 87 00 f7 bc 87 23 01 00 00[	 ]+shrx[	 ]+%r31,0x123\(%r31,%rax,4\),%r15
 [	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 49 84 87 23 01 00 00[	 ]+sttilecfg[	 ]+0x123\(%r31,%rax,4\)
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 da 7f 08 4b b4 87 23 01 00 00[	 ]+tileloadd[	 ]+0x123\(%r31,%rax,4\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 b2 7b 08 4a b4 fd 00 00 00 10[	 ]+tileloaddrs[	 ]+0x10000000\(%rbp,%r31,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 fa 7f 08 4a 1c 20[	 ]+tileloaddrs[	 ]+\(%r16,%riz,1\),%tmm3
@@ -286,14 +278,6 @@ Disassembly of section \.text:
 [	 ]*[a-f0-9]+:[	 ]*62 52 87 00 f7 df[	 ]+shrx[	 ]+%r31,%r15,%r11
 [	 ]*[a-f0-9]+:[	 ]*62 5a 87 00 f7 bc 87 23 01 00 00[	 ]+shrx[	 ]+%r31,0x123\(%r31,%rax,4\),%r15
 [	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 49 84 87 23 01 00 00[	 ]+sttilecfg[	 ]+0x123\(%r31,%rax,4\)
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz0[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz0rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7c 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz0t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6e b4 c7 23 01 00 00[	 ]+t2rpntlvwz1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rs[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[	 ]+t2rpntlvwz1rst1[	 ]+0x123\(%r31,%rax,8\),%tmm6
-[	 ]*[a-f0-9]+:[	 ]*62 da 7d 08 6f b4 c7 23 01 00 00[	 ]+t2rpntlvwz1t1[	 ]+0x123\(%r31,%rax,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 da 7f 08 4b b4 87 23 01 00 00[	 ]+tileloadd[	 ]+0x123\(%r31,%rax,4\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 b2 7b 08 4a b4 fd 00 00 00 10[	 ]+tileloaddrs[	 ]+0x10000000\(%rbp,%r31,8\),%tmm6
 [	 ]*[a-f0-9]+:[	 ]*62 fa 7f 08 4a 1c 20[	 ]+tileloaddrs[	 ]+\(%r16,%riz,1\),%tmm3
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
index f0bcb3a9beb..f95ff503281 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
@@ -133,14 +133,6 @@ _start:
 	shrx	%r31,%r15,%r11
 	shrx	%r31,0x123(%r31,%rax,4),%r15
 	sttilecfg	0x123(%r31,%rax,4)
-	t2rpntlvwz0	0x123(%r31,%rax,8),%tmm6
-	t2rpntlvwz0rs	0x123(%r31,%rax,8),%tmm6
-	t2rpntlvwz0rst1	0x123(%r31,%rax,8),%tmm6
-	t2rpntlvwz0t1	0x123(%r31,%rax,8),%tmm6
-	t2rpntlvwz1	0x123(%r31,%rax,8),%tmm6
-	t2rpntlvwz1rs	0x123(%r31,%rax,8),%tmm6
-	t2rpntlvwz1rst1	0x123(%r31,%rax,8),%tmm6
-	t2rpntlvwz1t1	0x123(%r31,%rax,8),%tmm6
 	tileloadd	0x123(%r31,%rax,4),%tmm6
 	tileloaddrs     0x10000000(%rbp, %r31, 8), %tmm6
 	tileloaddrs     (%r16), %tmm3
@@ -282,14 +274,6 @@ _start:
 	shrx	r11,r15,r31
 	shrx	r15,QWORD PTR [r31+rax*4+0x123],r31
 	sttilecfg	[r31+rax*4+0x123]
-	t2rpntlvwz0	tmm6,[r31+rax*8+0x123]
-	t2rpntlvwz0rs	tmm6,[r31+rax*8+0x123]
-	t2rpntlvwz0rst1	tmm6,[r31+rax*8+0x123]
-	t2rpntlvwz0t1	tmm6,[r31+rax*8+0x123]
-	t2rpntlvwz1	tmm6,[r31+rax*8+0x123]
-	t2rpntlvwz1rs	tmm6,[r31+rax*8+0x123]
-	t2rpntlvwz1rst1	tmm6,[r31+rax*8+0x123]
-	t2rpntlvwz1t1	tmm6,[r31+rax*8+0x123]
 	tileloadd	tmm6,[r31+rax*4+0x123]
 	tileloaddrs	tmm6, [rbp+r31*8+0x10000000]
 	tileloaddrs	tmm3, [r16]
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index fd42263e59a..738cd31b1a0 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -534,7 +534,6 @@ run_list_test "x86-64-amx-fp8-inval"
 run_dump_test "x86-64-amx-fp8-bad"
 run_dump_test "x86-64-amx-movrs"
 run_dump_test "x86-64-amx-movrs-intel"
-run_list_test "x86-64-amx-movrs-inval"
 run_dump_test "x86-64-amx-avx512"
 run_dump_test "x86-64-amx-avx512-intel"
 run_dump_test "x86-64-movrs"
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 6ba7764449c..bc86f2befbb 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)" },
+    "~(IAMCU|MPX|AMX_TRANSPOSE)" },
   { "GENERIC32",
     "386" },
   { "GENERIC64",
-- 
2.31.1



More information about the Binutils mailing list