From: Haochen Jiang Date: Fri, 24 Oct 2025 05:49:20 +0000 (+0800) Subject: x86: Disable AMX-TRANSPOSE by default X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=05b24220b1181bd47814d347dd0553d2f449c3cd;p=thirdparty%2Fbinutils-gdb.git x86: Disable AMX-TRANSPOSE by default 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. --- 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", diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h index 25b642e8828..bcc670585a3 100644 --- a/opcodes/i386-init.h +++ b/opcodes/i386-init.h @@ -1596,7 +1596,7 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 } } + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 } } #define CPU_GENERIC32_FLAGS \ { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \