]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Support {evex} pseudo prefix for decode evex promoted insns without egpr32.
authorHu, Lin1 <lin1.hu@intel.com>
Tue, 9 Apr 2024 02:58:39 +0000 (10:58 +0800)
committerCui, Lili <lili.cui@intel.com>
Tue, 9 Apr 2024 03:18:23 +0000 (11:18 +0800)
This patch is based on APX NF patch and also adds test cases for Checking 64-bit insns not sizeable through
register operands with evex.

gas/ChangeLog:

        * testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d: Added no-egpr testcases for movbe.
        * 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.exp: Added tests.
        * testsuite/gas/i386/noreg64-evex.d: New test.
        * testsuite/gas/i386/noreg64-evex.e: Ditto.
        * testsuite/gas/i386/noreg64-evex.s: Ditto.
        * testsuite/gas/i386/x86-64-apx_f-evex.d: Ditto.
        * testsuite/gas/i386/x86-64-apx_f-evex.s: Ditto.

opcodes/ChangeLog:

        * i386-dis-evex.h: Added %ME to movbe.
        * i386-dis.c : Added %XE to evex_from_vex instructions to output {evex}.
        (struct dis386): New %ME.
        (putop): Handle %ME and output {evex} for evex_from_legacy instructions.
        * Return early when the instruction name is (bad).

12 files changed:
gas/testsuite/gas/i386/noreg64-evex.d [new file with mode: 0644]
gas/testsuite/gas/i386/noreg64-evex.e [new file with mode: 0644]
gas/testsuite/gas/i386/noreg64-evex.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
gas/testsuite/gas/i386/x86-64-apx_f-evex.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-apx_f-evex.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64.exp
opcodes/i386-dis-evex.h
opcodes/i386-dis.c

diff --git a/gas/testsuite/gas/i386/noreg64-evex.d b/gas/testsuite/gas/i386/noreg64-evex.d
new file mode 100644 (file)
index 0000000..cef2995
--- /dev/null
@@ -0,0 +1,73 @@
+#objdump: -dw
+#name: 64-bit insns not sizeable through register operands evex
+#source: noreg64-evex.s
+#warning_output: noreg64-evex.e
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 83 10 01[         ]+\{evex\} adcl \$0x1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 10 89 00 00 00[        ]+\{evex\} adcl \$0x89,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 10 34 12 00 00[        ]+\{evex\} adcl \$0x1234,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 10 78 56 34 12[        ]+\{evex\} adcl \$0x12345678,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 83 00 01[         ]+\{evex\} addl \$0x1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 00 89 00 00 00[        ]+\{evex\} addl \$0x89,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 00 34 12 00 00[        ]+\{evex\} addl \$0x1234,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 00 78 56 34 12[        ]+\{evex\} addl \$0x12345678,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 83 20 01[         ]+\{evex\} andl \$0x1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 20 89 00 00 00[        ]+\{evex\} andl \$0x89,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 20 34 12 00 00[        ]+\{evex\} andl \$0x1234,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 20 78 56 34 12[        ]+\{evex\} andl \$0x12345678,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 f1 00[    ]+\{evex\} crc32l \(%rax\),%eax
+[       ]*[a-f0-9]+:[   ]*62 f4 fc 08 f1 00[    ]+\{evex\} crc32q \(%rax\),%rax
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 ff 08[    ]+\{evex\} decl \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 f7 30[    ]+\{evex\} divl \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 f7 38[    ]+\{evex\} idivl \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 f7 28[    ]+\{evex\} imull \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 ff 00[    ]+\{evex\} incl \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 f7 20[    ]+\{evex\} mull \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 f7 18[    ]+\{evex\} negl \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 f7 10[    ]+\{evex\} notl \(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 83 08 01[         ]+\{evex\} orl \$0x1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 08 89 00 00 00[        ]+\{evex\} orl \$0x89,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 08 34 12 00 00[        ]+\{evex\} orl \$0x1234,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 08 78 56 34 12[        ]+\{evex\} orl \$0x12345678,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 10[    ]+\{evex\} rcll \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 10 02[         ]+\{evex\} rcll \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 10[    ]+\{evex\} rcll %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 18[    ]+\{evex\} rcrl \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 18 02[         ]+\{evex\} rcrl \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 18[    ]+\{evex\} rcrl %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 00[    ]+\{evex\} roll \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 00 02[         ]+\{evex\} roll \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 00[    ]+\{evex\} roll %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 08[    ]+\{evex\} rorl \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 08 02[         ]+\{evex\} rorl \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 08[    ]+\{evex\} rorl %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 20[    ]+\{evex\} shll \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 20 02[         ]+\{evex\} shll \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 20[    ]+\{evex\} shll %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 38[    ]+\{evex\} sarl \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 38 02[         ]+\{evex\} sarl \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 38[    ]+\{evex\} sarl %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 83 18 01[         ]+\{evex\} sbbl \$0x1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 18 89 00 00 00[        ]+\{evex\} sbbl \$0x89,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 18 34 12 00 00[        ]+\{evex\} sbbl \$0x1234,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 18 78 56 34 12[        ]+\{evex\} sbbl \$0x12345678,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 20[    ]+\{evex\} shll \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 20 02[         ]+\{evex\} shll \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 20[    ]+\{evex\} shll %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d1 28[    ]+\{evex\} shrl \$1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 c1 28 02[         ]+\{evex\} shrl \$0x2,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 d3 28[    ]+\{evex\} shrl %cl,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 83 28 01[         ]+\{evex\} subl \$0x1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 28 89 00 00 00[        ]+\{evex\} subl \$0x89,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 28 34 12 00 00[        ]+\{evex\} subl \$0x1234,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 28 78 56 34 12[        ]+\{evex\} subl \$0x12345678,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 83 30 01[         ]+\{evex\} xorl \$0x1,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 30 89 00 00 00[        ]+\{evex\} xorl \$0x89,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 30 34 12 00 00[        ]+\{evex\} xorl \$0x1234,\(%rax\)
+[       ]*[a-f0-9]+:[   ]*62 f4 7c 08 81 30 78 56 34 12[        ]+\{evex\} xorl \$0x12345678,\(%rax\)
+#pass
diff --git a/gas/testsuite/gas/i386/noreg64-evex.e b/gas/testsuite/gas/i386/noreg64-evex.e
new file mode 100644 (file)
index 0000000..b8ae1ef
--- /dev/null
@@ -0,0 +1,64 @@
+.*: Assembler messages:
+.*:[0-9]+: Warning:.*`adc'
+.*:[0-9]+: Warning:.*`adc'
+.*:[0-9]+: Warning:.*`adc'
+.*:[0-9]+: Warning:.*`adc'
+.*:[0-9]+: Warning:.*`add'
+.*:[0-9]+: Warning:.*`add'
+.*:[0-9]+: Warning:.*`add'
+.*:[0-9]+: Warning:.*`add'
+.*:[0-9]+: Warning:.*`and'
+.*:[0-9]+: Warning:.*`and'
+.*:[0-9]+: Warning:.*`and'
+.*:[0-9]+: Warning:.*`and'
+.*:[0-9]+: Warning:.*`crc32'
+.*:[0-9]+: Warning:.*`crc32'
+.*:[0-9]+: Warning:.*`dec'
+.*:[0-9]+: Warning:.*`div'
+.*:[0-9]+: Warning:.*`idiv'
+.*:[0-9]+: Warning:.*`imul'
+.*:[0-9]+: Warning:.*`inc'
+.*:[0-9]+: Warning:.*`mul'
+.*:[0-9]+: Warning:.*`neg'
+.*:[0-9]+: Warning:.*`not'
+.*:[0-9]+: Warning:.*`or'
+.*:[0-9]+: Warning:.*`or'
+.*:[0-9]+: Warning:.*`or'
+.*:[0-9]+: Warning:.*`or'
+.*:[0-9]+: Warning:.*`rcl'
+.*:[0-9]+: Warning:.*`rcl'
+.*:[0-9]+: Warning:.*`rcl'
+.*:[0-9]+: Warning:.*`rcr'
+.*:[0-9]+: Warning:.*`rcr'
+.*:[0-9]+: Warning:.*`rcr'
+.*:[0-9]+: Warning:.*`rol'
+.*:[0-9]+: Warning:.*`rol'
+.*:[0-9]+: Warning:.*`rol'
+.*:[0-9]+: Warning:.*`ror'
+.*:[0-9]+: Warning:.*`ror'
+.*:[0-9]+: Warning:.*`ror'
+.*:[0-9]+: Warning:.*`sal'
+.*:[0-9]+: Warning:.*`sal'
+.*:[0-9]+: Warning:.*`sal'
+.*:[0-9]+: Warning:.*`sar'
+.*:[0-9]+: Warning:.*`sar'
+.*:[0-9]+: Warning:.*`sar'
+.*:[0-9]+: Warning:.*`sbb'
+.*:[0-9]+: Warning:.*`sbb'
+.*:[0-9]+: Warning:.*`sbb'
+.*:[0-9]+: Warning:.*`sbb'
+.*:[0-9]+: Warning:.*`shl'
+.*:[0-9]+: Warning:.*`shl'
+.*:[0-9]+: Warning:.*`shl'
+.*:[0-9]+: Warning:.*`shr'
+.*:[0-9]+: Warning:.*`shr'
+.*:[0-9]+: Warning:.*`shr'
+.*:[0-9]+: Warning:.*`sub'
+.*:[0-9]+: Warning:.*`sub'
+.*:[0-9]+: Warning:.*`sub'
+.*:[0-9]+: Warning:.*`sub'
+.*:[0-9]+: Warning:.*`xor'
+.*:[0-9]+: Warning:.*`xor'
+.*:[0-9]+: Warning:.*`xor'
+.*:[0-9]+: Warning:.*`xor'
+#pass
diff --git a/gas/testsuite/gas/i386/noreg64-evex.s b/gas/testsuite/gas/i386/noreg64-evex.s
new file mode 100644 (file)
index 0000000..2924900
--- /dev/null
@@ -0,0 +1,66 @@
+# Check 64-bit insns not sizeable through register operands with evex
+
+        .text
+_start:
+       {evex} adc      $1, (%rax)
+       {evex} adc      $0x89, (%rax)
+       {evex} adc      $0x1234, (%rax)
+       {evex} adc      $0x12345678, (%rax)
+       {evex} add      $1, (%rax)
+       {evex} add      $0x89, (%rax)
+       {evex} add      $0x1234, (%rax)
+       {evex} add      $0x12345678, (%rax)
+       {evex} and      $1, (%rax)
+       {evex} and      $0x89, (%rax)
+       {evex} and      $0x1234, (%rax)
+       {evex} and      $0x12345678, (%rax)
+       {evex} crc32    (%rax), %eax
+       {evex} crc32    (%rax), %rax
+       {evex} dec      (%rax)
+       {evex} div      (%rax)
+       {evex} idiv     (%rax)
+       {evex} imul     (%rax)
+       {evex} inc      (%rax)
+       {evex} mul      (%rax)
+       {evex} neg      (%rax)
+       {evex} not      (%rax)
+       {evex} or       $1, (%rax)
+       {evex} or       $0x89, (%rax)
+       {evex} or       $0x1234, (%rax)
+       {evex} or       $0x12345678, (%rax)
+       {evex} rcl      $1, (%rax)
+       {evex} rcl      $2, (%rax)
+       {evex} rcl      %cl, (%rax)
+       {evex} rcr      $1, (%rax)
+       {evex} rcr      $2, (%rax)
+       {evex} rcr      %cl, (%rax)
+       {evex} rol      $1, (%rax)
+       {evex} rol      $2, (%rax)
+       {evex} rol      %cl, (%rax)
+       {evex} ror      $1, (%rax)
+       {evex} ror      $2, (%rax)
+       {evex} ror      %cl, (%rax)
+       {evex} sal      $1, (%rax)
+       {evex} sal      $2, (%rax)
+       {evex} sal      %cl, (%rax)
+       {evex} sar      $1, (%rax)
+       {evex} sar      $2, (%rax)
+       {evex} sar      %cl, (%rax)
+       {evex} sbb      $1, (%rax)
+       {evex} sbb      $0x89, (%rax)
+       {evex} sbb      $0x1234, (%rax)
+       {evex} sbb      $0x12345678, (%rax)
+       {evex} shl      $1, (%rax)
+       {evex} shl      $2, (%rax)
+       {evex} shl      %cl, (%rax)
+       {evex} shr      $1, (%rax)
+       {evex} shr      $2, (%rax)
+       {evex} shr      %cl, (%rax)
+       {evex} sub      $1, (%rax)
+       {evex} sub      $0x89, (%rax)
+       {evex} sub      $0x1234, (%rax)
+       {evex} sub      $0x12345678, (%rax)
+       {evex} xor      $1, (%rax)
+       {evex} xor      $0x89, (%rax)
+       {evex} xor      $0x1234, (%rax)
+       {evex} xor      $0x12345678, (%rax)
index d049c099daf45728ed23029e28084ad63b88da12..5e7b695df0125c0b83456ac897f45b04246f1d00 100644 (file)
@@ -101,11 +101,14 @@ Disassembly of section \.text:
 [       ]*[a-f0-9]+:[   ]*62 d9 7c 08 90 ac 87 23 01 00 00[     ]+kmovw[        ]+k5,WORD PTR \[r31\+rax\*4\+0x123\]
 [       ]*[a-f0-9]+:[   ]*62 da 7c 08 49 84 87 23 01 00 00[     ]+ldtilecfg[    ]+\[r31\+rax\*4\+0x123\]
 [       ]*[a-f0-9]+:[   ]*62 fc 7d 08 60 c2[    ]+movbe[        ]+ax,r18w
+[       ]*[a-f0-9]+:[   ]*62 d4 7d 08 60 c7[    ]+movbe[        ]+ax,r15w
 [       ]*[a-f0-9]+:[   ]*62 ec 7d 08 61 94 80 23 01 00 00[     ]+movbe[        ]+WORD PTR \[r16\+rax\*4\+0x123\],r18w
 [       ]*[a-f0-9]+:[   ]*62 cc 7d 08 61 94 87 23 01 00 00[     ]+movbe[        ]+WORD PTR \[r31\+rax\*4\+0x123\],r18w
 [       ]*[a-f0-9]+:[   ]*62 dc 7c 08 60 d1[    ]+movbe[        ]+edx,r25d
+[       ]*[a-f0-9]+:[   ]*62 d4 7c 08 60 d7[    ]+movbe[        ]+edx,r15d
 [       ]*[a-f0-9]+:[   ]*62 6c 7c 08 61 8c 80 23 01 00 00[     ]+movbe[        ]+DWORD PTR \[r16\+rax\*4\+0x123\],r25d
 [       ]*[a-f0-9]+:[   ]*62 5c fc 08 60 ff[    ]+movbe[        ]+r15,r31
+[       ]*[a-f0-9]+:[   ]*62 54 fc 08 60 f8[    ]+movbe[        ]+r15,r8
 [       ]*[a-f0-9]+:[   ]*62 6c fc 08 61 bc 80 23 01 00 00[     ]+movbe[        ]+QWORD PTR \[r16\+rax\*4\+0x123\],r31
 [       ]*[a-f0-9]+:[   ]*62 4c fc 08 61 bc 87 23 01 00 00[     ]+movbe[        ]+QWORD PTR \[r31\+rax\*4\+0x123\],r31
 [       ]*[a-f0-9]+:[   ]*62 6c fc 08 60 bc 80 23 01 00 00[     ]+movbe[        ]+r31,QWORD PTR \[r16\+rax\*4\+0x123\]
index 9237c34c0be0bfcd2e555746ffeb70f4b39bf211..88840a1c96f619954e997141389f0b940a89cb78 100644 (file)
@@ -101,11 +101,14 @@ Disassembly of section \.text:
 [       ]*[a-f0-9]+:[   ]*62 d9 7c 08 90 ac 87 23 01 00 00[     ]+kmovw[        ]+0x123\(%r31,%rax,4\),%k5
 [       ]*[a-f0-9]+:[   ]*62 da 7c 08 49 84 87 23 01 00 00[     ]+ldtilecfg[    ]+0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 fc 7d 08 60 c2[    ]+movbe[        ]+%r18w,%ax
+[       ]*[a-f0-9]+:[   ]*62 d4 7d 08 60 c7[    ]+movbe[        ]+%r15w,%ax
 [       ]*[a-f0-9]+:[   ]*62 ec 7d 08 61 94 80 23 01 00 00[     ]+movbe[        ]+%r18w,0x123\(%r16,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 cc 7d 08 61 94 87 23 01 00 00[     ]+movbe[        ]+%r18w,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 dc 7c 08 60 d1[    ]+movbe[        ]+%r25d,%edx
+[       ]*[a-f0-9]+:[   ]*62 d4 7c 08 60 d7[    ]+movbe[        ]+%r15d,%edx
 [       ]*[a-f0-9]+:[   ]*62 6c 7c 08 61 8c 80 23 01 00 00[     ]+movbe[        ]+%r25d,0x123\(%r16,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 5c fc 08 60 ff[    ]+movbe[        ]+%r31,%r15
+[       ]*[a-f0-9]+:[   ]*62 54 fc 08 60 f8[    ]+movbe[        ]+%r8,%r15
 [       ]*[a-f0-9]+:[   ]*62 6c fc 08 61 bc 80 23 01 00 00[     ]+movbe[        ]+%r31,0x123\(%r16,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 4c fc 08 61 bc 87 23 01 00 00[     ]+movbe[        ]+%r31,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 6c fc 08 60 bc 80 23 01 00 00[     ]+movbe[        ]+0x123\(%r16,%rax,4\),%r31
index 9b103f569c04b7d1f81b70ff18a7502e6d302a38..bdffa30504081a18c83a86cdc68264bee9885499 100644 (file)
@@ -101,11 +101,14 @@ Disassembly of section \.text:
 [       ]*[a-f0-9]+:[   ]*62 d9 7c 08 90 ac 87 23 01 00 00[     ]+kmovw[        ]+0x123\(%r31,%rax,4\),%k5
 [       ]*[a-f0-9]+:[   ]*62 da 7c 08 49 84 87 23 01 00 00[     ]+ldtilecfg[    ]+0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 fc 7d 08 60 c2[    ]+movbe[        ]+%r18w,%ax
+[       ]*[a-f0-9]+:[   ]*62 d4 7d 08 60 c7[    ]+movbe[        ]+%r15w,%ax
 [       ]*[a-f0-9]+:[   ]*62 ec 7d 08 61 94 80 23 01 00 00[     ]+movbe[        ]+%r18w,0x123\(%r16,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 cc 7d 08 61 94 87 23 01 00 00[     ]+movbe[        ]+%r18w,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 dc 7c 08 60 d1[    ]+movbe[        ]+%r25d,%edx
+[       ]*[a-f0-9]+:[   ]*62 d4 7c 08 60 d7[    ]+movbe[        ]+%r15d,%edx
 [       ]*[a-f0-9]+:[   ]*62 6c 7c 08 61 8c 80 23 01 00 00[     ]+movbe[        ]+%r25d,0x123\(%r16,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 5c fc 08 60 ff[    ]+movbe[        ]+%r31,%r15
+[       ]*[a-f0-9]+:[   ]*62 54 fc 08 60 f8[    ]+movbe[        ]+%r8,%r15
 [       ]*[a-f0-9]+:[   ]*62 6c fc 08 61 bc 80 23 01 00 00[     ]+movbe[        ]+%r31,0x123\(%r16,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 4c fc 08 61 bc 87 23 01 00 00[     ]+movbe[        ]+%r31,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 6c fc 08 60 bc 80 23 01 00 00[     ]+movbe[        ]+0x123\(%r16,%rax,4\),%r31
index 83806782e5eab727dffceeb2f142c08da2d179b6..1ba7d72cf9e50f8479b51d6cf9bddffcf272040c 100644 (file)
@@ -95,11 +95,14 @@ _start:
        kmovw   0x123(%r31,%rax,4),%k5
        ldtilecfg       0x123(%r31,%rax,4)
        movbe   %r18w,%ax
+       movbe   %r15w,%ax
        movbe   %r18w,0x123(%r16,%rax,4)
        movbe   %r18w,0x123(%r31,%rax,4)
        movbe   %r25d,%edx
+       movbe   %r15d,%edx
        movbe   %r25d,0x123(%r16,%rax,4)
        movbe   %r31,%r15
+       movbe   %r8,%r15
        movbe   %r31,0x123(%r16,%rax,4)
        movbe   %r31,0x123(%r31,%rax,4)
        movbe   0x123(%r16,%rax,4),%r31
diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex.d b/gas/testsuite/gas/i386/x86-64-apx_f-evex.d
new file mode 100644 (file)
index 0000000..12326f5
--- /dev/null
@@ -0,0 +1,606 @@
+#as:
+#objdump: -dw
+#name: x86_64 APX_F insns with evex pseudo prefix
+#source: x86-64-apx_f-evex.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 54 fc 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\} aadd\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\} aand\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\} adc\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\} adc\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\} adcb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\} adcq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\} adc\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\} adc\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\} adc\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\} adc\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\} adc\s+%r8b,%dl
+\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\} adc\s+%r8b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\} adc\s+0x123\(%r8,%rax,4\),%r8b
+\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\} adcx\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\} adcx\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\} adcx\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\} add\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\} add\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\} addb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\} addw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\} addl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\} addq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\} add\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\} add\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\} add\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\} add\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\} add\s+%r8b,%dl
+\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\} add\s+%r8b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\} add\s+0x123\(%r8,%rax,4\),%r8b
+\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\} adox\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\} adox\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\} adox\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\} and\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\} and\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\} andb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\} andq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\} and\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\} and\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\} and\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\} and\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\} and\s+%r8b,%dl
+\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\} and\s+%r8b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\} and\s+0x123\(%r8,%rax,4\),%r8b
+\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\} andn\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\} andn\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15,%r15
+\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\} andn\s+0x123\(%r8,%rax,4\),%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\} aor\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\} axor\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+%r15,0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+%r15d,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 df\s+\{evex\} blsi\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d2 6c 08 f3 df\s+\{evex\} blsi\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 d7\s+\{evex\} blsmsk\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d2 6c 08 f3 d7\s+\{evex\} blsmsk\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 cf\s+\{evex\} blsr\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d2 6c 08 f3 cf\s+\{evex\} blsr\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+%r15,0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+%r15d,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+%r15d,%edx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\} dec\s+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\} dec\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\} dec\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\} dec\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\} decb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\} decw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\} decl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\} decq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\} div\s+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\} div\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\} div\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\} div\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\} divb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\} divw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\} divl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\} divq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmd\s+0x123\(%r8d,%eax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\} enqcmds\s+0x123\(%r8d,%eax,4\),%r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ff\s+\{evex\} idiv\s+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ff\s+\{evex\} idiv\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ff\s+\{evex\} idiv\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f8\s+\{evex\} idiv\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 bc 80 23 01 00 00\s+\{evex\} idivb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idivw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idivl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idivq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ef\s+\{evex\} imul\s+%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 af ff\s+\{evex\} imul\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ef\s+\{evex\} imul\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7c 08 af d7\s+\{evex\} imul\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ef\s+\{evex\} imul\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7d 08 af c7\s+\{evex\} imul\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e8\s+\{evex\} imul\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 ac 80 23 01 00 00\s+\{evex\} imulb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imulw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imull\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imulq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 f4 7d 08 6b c2 7b\s+\{evex\} imul \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 08 6b d1 7b\s+\{evex\} imul \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 54 fc 08 6b f9 7b\s+\{evex\} imul \$0x7b,%r9,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 6b c9 7b\s+\{evex\} imul \$0x7b,%r9,%r9
+\s*[a-f0-9]+:\s*62 d4 7d 08 6b 94 80 23 01 00 00 7b\s+\{evex\} imul \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 08 6b 8c 80 23 01 00 00 7b\s+\{evex\} imul \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 54 fc 08 6b 8c 80 23 01 00 00 7b\s+\{evex\} imul \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7d 08 6b c2 90\s+\{evex\} imul \$0xff90,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 08 69 d1 90 ff 00 00\s+\{evex\} imul \$0xff90,%ecx,%edx
+\s*[a-f0-9]+:\s*62 54 fc 08 69 f9 90 ff 00 00\s+\{evex\} imul \$0xff90,%r9,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 69 c9 90 ff 00 00\s+\{evex\} imul \$0xff90,%r9,%r9
+\s*[a-f0-9]+:\s*62 d4 7d 08 6b 94 80 23 01 00 00 90\s+\{evex\} imul \$0xff90,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 08 69 8c 80 23 01 00 00 90 ff 00 00\s+\{evex\} imul \$0xff90,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 54 fc 08 69 8c 80 23 01 00 00 90 ff 00 00\s+\{evex\} imul \$0xff90,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff c7\s+\{evex\} inc\s+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff c7\s+\{evex\} inc\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff c7\s+\{evex\} inc\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe c0\s+\{evex\} inc\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe 84 80 23 01 00 00\s+\{evex\} incb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} incw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} incl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} incq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\} kmovb\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\} kmovb\s+%k5,%r15d
+\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\} kmovb\s+%k5,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\} kmovb\s+%r15d,%k5
+\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\} kmovb\s+0x123\(%r8,%rax,4\),%k5
+\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\} kmovd\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\} kmovd\s+%k5,%r15d
+\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\} kmovd\s+%k5,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\} kmovd\s+%r15d,%k5
+\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\} kmovd\s+0x123\(%r8,%rax,4\),%k5
+\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\} kmovq\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\} kmovq\s+%k5,%r15
+\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\} kmovq\s+%k5,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\} kmovq\s+%r15,%k5
+\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\} kmovq\s+0x123\(%r8,%rax,4\),%k5
+\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\} kmovw\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\} kmovw\s+%k5,%r15d
+\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\} kmovw\s+%k5,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\} kmovw\s+%r15d,%k5
+\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\} kmovw\s+0x123\(%r8,%rax,4\),%k5
+\s*[a-f0-9]+:\s*62 54 fc 08 f5 ff\s+\{evex\} lzcnt\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f5 d7\s+\{evex\} lzcnt\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+0x123\(%r8d,%eax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 e7\s+\{evex\} mul\s+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 e7\s+\{evex\} mul\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 e7\s+\{evex\} mul\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 e0\s+\{evex\} mul\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 a4 80 23 01 00 00\s+\{evex\} mulb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mulw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mull\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mulq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15,%r15
+\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+0x123\(%r8,%rax,4\),%r15d,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 df\s+\{evex\} neg\s+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 df\s+\{evex\} neg\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 df\s+\{evex\} neg\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d8\s+\{evex\} neg\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 9c 80 23 01 00 00\s+\{evex\} negb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} negw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} negl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} negq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 d7\s+\{evex\} not\s+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 d7\s+\{evex\} not\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 d7\s+\{evex\} not\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 d0\s+\{evex\} not\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 94 80 23 01 00 00\s+\{evex\} notb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} notw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} notl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} notq\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} orb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} orq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 09 ff\s+\{evex\} or\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+%r8b,%dl
+\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+%r8b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+0x123\(%r8,%rax,4\),%r8b
+\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15,%r15
+\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+0x123\(%r8,%rax,4\),%r15d,%edx
+\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15,%r15
+\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+0x123\(%r8,%rax,4\),%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 fc 08 88 ff\s+\{evex\} popcnt\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 88 d7\s+\{evex\} popcnt\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\} rcl\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\} rcl\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\} rclb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rcll\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\} rclq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\} rcl\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\} rcl\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\} rcl\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\} rcl\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\} rclb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\} rclw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\} rcll\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\} rclq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\} rcl\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\} rcl\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\} rclb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\} rclw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\} rcll\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\} rclq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\} rcr\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\} rcr\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\} rcrb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\} rcrq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\} rcr\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\} rcr\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\} rcr\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\} rcr\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\} rcrb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrl\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\} rcr\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\} rcr\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\} rcr\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\} rcr\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\} rcrb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrl\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\} rcrq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\} rol\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\} rol\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\} rolb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\} roll\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\} rolq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\} rol\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\} rol\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\} rol\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\} rol\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\} rolb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\} rolw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\} roll\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\} rolq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\} rol\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\} rol\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\} rol\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\} rol\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\} rolb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\} rolw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\} roll\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\} rolq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\} ror\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\} ror\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\} rorb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\} rorq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\} ror\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\} ror\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\} ror\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\} ror\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\} rorb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\} rorw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\} rorl\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\} rorq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\} ror\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\} ror\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\} ror\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\} ror\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\} rorb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\} rorw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\} rorl\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\} rorq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\} rorx\s+\$0x7b,%r15,%r15
+\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\} rorx\s+\$0x7b,%r15d,%edx
+\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\} rorx\s+\$0x7b,0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shlb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shll\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shlb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shlw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shll\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shlq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sarb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sarq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sarb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sarw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sarl\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sarq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sarb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sarw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sarl\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sarq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+%r15,0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+%r15d,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbbb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbbq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 19 ff\s+\{evex\} sbb\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+%r8b,%dl
+\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+%r8b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+0x123\(%r8,%rax,4\),%r8b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shlb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shll\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shlq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shlb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shlw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shll\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shlq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+\$0x7b,%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+\$0x7b,%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+\$0x7b,%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+%cl,%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+%cl,%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+%cl,%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+%cl,%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+%r15,0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+%r15d,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shrb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shrq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+\$1,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+\$1,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+\$1,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+\$1,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shrb\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shrw\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shrl\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shrq\s+\$1,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+%cl,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+%cl,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+%cl,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+%cl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shrb\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shrw\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shrl\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shrq\s+%cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+\$0x7b,%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+\$0x7b,%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+%cl,%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+%cl,%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+%cl,%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+%cl,%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+%r15,%r15,%r11
+\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+%r15,0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+%r15d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+%r15d,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} subb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} subq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 29 ff\s+\{evex\} sub\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+%r8b,%dl
+\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+%r8b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+0x123\(%r8,%rax,4\),%r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 f4 ff\s+\{evex\} tzcnt\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f4 d7\s+\{evex\} tzcnt\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+\$0x7b,%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+\$0x7b,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xorb\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorw\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorl\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xorq\s+\$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 08 31 ff\s+\{evex\} xor\s+%r15,%r15
+\s*[a-f0-9]+:\s*62 54 fc 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15d,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+%r15w,%ax
+\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+%r15w,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+%r8b,%dl
+\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+%r8b,0x123\(%r8,%rax,4\)
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex.s b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s
new file mode 100644 (file)
index 0000000..908505d
--- /dev/null
@@ -0,0 +1,603 @@
+# Check 64bit APX_F instructions with evex pseudo prefix
+
+       .text
+_start:
+       {evex} aadd     %r15,0x123(%r8,%rax,4)
+       {evex} aadd     %r15d,0x123(%r8,%rax,4)
+       {evex} aand     %r15,0x123(%r8,%rax,4)
+       {evex} aand     %r15d,0x123(%r8,%rax,4)
+       {evex} adc      $0x7b,%r15
+       {evex} adc      $0x7b,%r15d
+       {evex} adc      $0x7b,%r15w
+       {evex} adc      $0x7b,%r8b
+       {evex} adcb     $0x7b,0x123(%r8,%rax,4)
+       {evex} adcw     $0x7b,0x123(%r8,%rax,4)
+       {evex} adcl     $0x7b,0x123(%r8,%rax,4)
+       {evex} adcq     $0x7b,0x123(%r8,%rax,4)
+       {evex} adc      %r15,%r15
+       {evex} adc      %r15,0x123(%r8,%rax,4)
+       {evex} adc      %r15d,%edx
+       {evex} adc      %r15d,0x123(%r8,%rax,4)
+       {evex} adc      %r15w,%ax
+       {evex} adc      %r15w,0x123(%r8,%rax,4)
+       {evex} adc      %r8b,%dl
+       {evex} adc      %r8b,0x123(%r8,%rax,4)
+       {evex} adc      0x123(%r8,%rax,4),%r15
+       {evex} adc      0x123(%r8,%rax,4),%r15d
+       {evex} adc      0x123(%r8,%rax,4),%r15w
+       {evex} adc      0x123(%r8,%rax,4),%r8b
+       {evex} adcx     %r15,%r15
+       {evex} adcx     %r15d,%edx
+       {evex} adcx     0x123(%r8,%rax,4),%r15
+       {evex} adcx     0x123(%r8,%rax,4),%r15d
+       {evex} add      $0x7b,%r15
+       {evex} add      $0x7b,%r15d
+       {evex} add      $0x7b,%r15w
+       {evex} add      $0x7b,%r8b
+       {evex} addb     $0x7b,0x123(%r8,%rax,4)
+       {evex} addw     $0x7b,0x123(%r8,%rax,4)
+       {evex} addl     $0x7b,0x123(%r8,%rax,4)
+       {evex} addq     $0x7b,0x123(%r8,%rax,4)
+       {evex} add      %r15,%r15
+       {evex} add      %r15,0x123(%r8,%rax,4)
+       {evex} add      %r15d,%edx
+       {evex} add      %r15d,0x123(%r8,%rax,4)
+       {evex} add      %r15w,%ax
+       {evex} add      %r15w,0x123(%r8,%rax,4)
+       {evex} add      %r8b,%dl
+       {evex} add      %r8b,0x123(%r8,%rax,4)
+       {evex} add      0x123(%r8,%rax,4),%r15
+       {evex} add      0x123(%r8,%rax,4),%r15d
+       {evex} add      0x123(%r8,%rax,4),%r15w
+       {evex} add      0x123(%r8,%rax,4),%r8b
+       {evex} adox     %r15,%r15
+       {evex} adox     %r15d,%edx
+       {evex} adox     0x123(%r8,%rax,4),%r15
+       {evex} adox     0x123(%r8,%rax,4),%r15d
+       {evex} and      $0x7b,%r15
+       {evex} and      $0x7b,%r15d
+       {evex} and      $0x7b,%r15w
+       {evex} and      $0x7b,%r8b
+       {evex} andb     $0x7b,0x123(%r8,%rax,4)
+       {evex} andw     $0x7b,0x123(%r8,%rax,4)
+       {evex} andl     $0x7b,0x123(%r8,%rax,4)
+       {evex} andq     $0x7b,0x123(%r8,%rax,4)
+       {evex} and      %r15,%r15
+       {evex} and      %r15,0x123(%r8,%rax,4)
+       {evex} and      %r15d,%edx
+       {evex} and      %r15d,0x123(%r8,%rax,4)
+       {evex} and      %r15w,%ax
+       {evex} and      %r15w,0x123(%r8,%rax,4)
+       {evex} and      %r8b,%dl
+       {evex} and      %r8b,0x123(%r8,%rax,4)
+       {evex} and      0x123(%r8,%rax,4),%r15
+       {evex} and      0x123(%r8,%rax,4),%r15d
+       {evex} and      0x123(%r8,%rax,4),%r15w
+       {evex} and      0x123(%r8,%rax,4),%r8b
+       {evex} andn     %r15,%r15,%r11
+       {evex} andn     %r15d,%edx,%r10d
+       {evex} andn     0x123(%r8,%rax,4),%r15,%r15
+       {evex} andn     0x123(%r8,%rax,4),%r15d,%edx
+       {evex} aor      %r15,0x123(%r8,%rax,4)
+       {evex} aor      %r15d,0x123(%r8,%rax,4)
+       {evex} axor     %r15,0x123(%r8,%rax,4)
+       {evex} axor     %r15d,0x123(%r8,%rax,4)
+       {evex} bextr    %r15,%r15,%r11
+       {evex} bextr    %r15,0x123(%r8,%rax,4),%r15
+       {evex} bextr    %r15d,%edx,%r10d
+       {evex} bextr    %r15d,0x123(%r8,%rax,4),%edx
+       {evex} blsi     %r15,%r15
+       {evex} blsi     %r15d,%edx
+       {evex} blsi     0x123(%r8,%rax,4),%r15
+       {evex} blsi     0x123(%r8,%rax,4),%r15d
+       {evex} blsmsk   %r15,%r15
+       {evex} blsmsk   %r15d,%edx
+       {evex} blsmsk   0x123(%r8,%rax,4),%r15
+       {evex} blsmsk   0x123(%r8,%rax,4),%r15d
+       {evex} blsr     %r15,%r15
+       {evex} blsr     %r15d,%edx
+       {evex} blsr     0x123(%r8,%rax,4),%r15
+       {evex} blsr     0x123(%r8,%rax,4),%r15d
+       {evex} bzhi     %r15,%r15,%r11
+       {evex} bzhi     %r15,0x123(%r8,%rax,4),%r15
+       {evex} bzhi     %r15d,%edx,%r10d
+       {evex} bzhi     %r15d,0x123(%r8,%rax,4),%edx
+       {evex} cmpbexadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpbexadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpbxadd %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpbxadd %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmplexadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmplexadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmplxadd %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmplxadd %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnbexadd       %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnbexadd       %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnbxadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnbxadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnlexadd       %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnlexadd       %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnlxadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnlxadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnoxadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnoxadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnpxadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnpxadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnsxadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnsxadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpnzxadd        %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpnzxadd        %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpoxadd %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpoxadd %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmppxadd %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmppxadd %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpsxadd %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpsxadd %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} cmpzxadd %r15,%r15,0x123(%r8,%rax,4)
+       {evex} cmpzxadd %r15d,%edx,0x123(%r8,%rax,4)
+       {evex} dec      %r15
+       {evex} dec      %r15d
+       {evex} dec      %r15w
+       {evex} dec      %r8b
+       {evex} decb     0x123(%r8,%rax,4)
+       {evex} decw     0x123(%r8,%rax,4)
+       {evex} decl     0x123(%r8,%rax,4)
+       {evex} decq     0x123(%r8,%rax,4)
+       {evex} div      %r15
+       {evex} div      %r15d
+       {evex} div      %r15w
+       {evex} div      %r8b
+       {evex} divb     0x123(%r8,%rax,4)
+       {evex} divw     0x123(%r8,%rax,4)
+       {evex} divl     0x123(%r8,%rax,4)
+       {evex} divq     0x123(%r8,%rax,4)
+       {evex} enqcmd   0x123(%r8,%rax,4),%r15
+       {evex} enqcmd   0x123(%r8d,%eax,4),%r15d
+       {evex} enqcmds  0x123(%r8,%rax,4),%r15
+       {evex} enqcmds  0x123(%r8d,%eax,4),%r15d
+       {evex} idiv     %r15
+       {evex} idiv     %r15d
+       {evex} idiv     %r15w
+       {evex} idiv     %r8b
+       {evex} idivb    0x123(%r8,%rax,4)
+       {evex} idivw    0x123(%r8,%rax,4)
+       {evex} idivl    0x123(%r8,%rax,4)
+       {evex} idivq    0x123(%r8,%rax,4)
+       {evex} imul     %r15
+       {evex} imul     %r15,%r15
+       {evex} imul     %r15d
+       {evex} imul     %r15d,%edx
+       {evex} imul     %r15w
+       {evex} imul     %r15w,%ax
+       {evex} imul     %r8b
+       {evex} imulb    0x123(%r8,%rax,4)
+       {evex} imulw    0x123(%r8,%rax,4)
+       {evex} imull    0x123(%r8,%rax,4)
+       {evex} imul     0x123(%r8,%rax,4),%r15
+       {evex} imul     0x123(%r8,%rax,4),%r15d
+       {evex} imul     0x123(%r8,%rax,4),%r15w
+       {evex} imulq    0x123(%r8,%rax,4)
+       {evex} imul     $0x7b, %dx, %ax
+       {evex} imul     $0x7b, %ecx, %edx
+       {evex} imul     $0x7b, %r9, %r15
+       {evex} imul     $0x7b, %r9
+       {evex} imul     $0x7b, 291(%r8, %rax, 4), %dx
+       {evex} imul     $0x7b, 291(%r8, %rax, 4), %ecx
+       {evex} imul     $0x7b, 291(%r8, %rax, 4), %r9
+       {evex} imul     $0xff90, %dx, %ax
+       {evex} imul     $0xff90, %ecx, %edx
+       {evex} imul     $0xff90, %r9, %r15
+       {evex} imul     $0xff90, %r9
+       {evex} imul     $0xff90, 291(%r8, %rax, 4), %dx
+       {evex} imul     $0xff90, 291(%r8, %rax, 4), %ecx
+       {evex} imul     $0xff90, 291(%r8, %rax, 4), %r9
+       {evex} inc      %r15
+       {evex} inc      %r15d
+       {evex} inc      %r15w
+       {evex} inc      %r8b
+       {evex} incb     0x123(%r8,%rax,4)
+       {evex} incw     0x123(%r8,%rax,4)
+       {evex} incl     0x123(%r8,%rax,4)
+       {evex} incq     0x123(%r8,%rax,4)
+       {evex} invept   0x123(%r8,%rax,4),%r15
+       {evex} invpcid  0x123(%r8,%rax,4),%r15
+       {evex} invvpid  0x123(%r8,%rax,4),%r15
+       {evex} kmovb    %k3,%k5
+       {evex} kmovb    %k5,%r15d
+       {evex} kmovb    %k5,0x123(%r8,%rax,4)
+       {evex} kmovb    %r15d,%k5
+       {evex} kmovb    0x123(%r8,%rax,4),%k5
+       {evex} kmovd    %k3,%k5
+       {evex} kmovd    %k5,%r15d
+       {evex} kmovd    %k5,0x123(%r8,%rax,4)
+       {evex} kmovd    %r15d,%k5
+       {evex} kmovd    0x123(%r8,%rax,4),%k5
+       {evex} kmovq    %k3,%k5
+       {evex} kmovq    %k5,%r15
+       {evex} kmovq    %k5,0x123(%r8,%rax,4)
+       {evex} kmovq    %r15,%k5
+       {evex} kmovq    0x123(%r8,%rax,4),%k5
+       {evex} kmovw    %k3,%k5
+       {evex} kmovw    %k5,%r15d
+       {evex} kmovw    %k5,0x123(%r8,%rax,4)
+       {evex} kmovw    %r15d,%k5
+       {evex} kmovw    0x123(%r8,%rax,4),%k5
+       {evex} lzcnt    %r15,%r15
+       {evex} lzcnt    %r15d,%edx
+       {evex} lzcnt    %r15w,%ax
+       {evex} lzcnt    0x123(%r8,%rax,4),%r15
+       {evex} lzcnt    0x123(%r8,%rax,4),%r15d
+       {evex} lzcnt    0x123(%r8,%rax,4),%r15w
+       {evex} movbe    %r15,0x123(%r8,%rax,4)
+       {evex} movbe    %r15d,0x123(%r8,%rax,4)
+       {evex} movbe    %r15w,0x123(%r8,%rax,4)
+       {evex} movbe    0x123(%r8,%rax,4),%r15
+       {evex} movbe    0x123(%r8,%rax,4),%r15d
+       {evex} movbe    0x123(%r8,%rax,4),%r15w
+       {evex} movdir64b        0x123(%r8,%rax,4),%r15
+       {evex} movdir64b        0x123(%r8d,%eax,4),%r15d
+       {evex} movdiri  %r15,0x123(%r8,%rax,4)
+       {evex} movdiri  %r15d,0x123(%r8,%rax,4)
+       {evex} mul      %r15
+       {evex} mul      %r15d
+       {evex} mul      %r15w
+       {evex} mul      %r8b
+       {evex} mulb     0x123(%r8,%rax,4)
+       {evex} mulw     0x123(%r8,%rax,4)
+       {evex} mull     0x123(%r8,%rax,4)
+       {evex} mulq     0x123(%r8,%rax,4)
+       {evex} mulx     %r15,%r15,%r11
+       {evex} mulx     %r15d,%edx,%r10d
+       {evex} mulx     0x123(%r8,%rax,4),%r15,%r15
+       {evex} mulx     0x123(%r8,%rax,4),%r15d,%edx
+       {evex} neg      %r15
+       {evex} neg      %r15d
+       {evex} neg      %r15w
+       {evex} neg      %r8b
+       {evex} negb     0x123(%r8,%rax,4)
+       {evex} negw     0x123(%r8,%rax,4)
+       {evex} negl     0x123(%r8,%rax,4)
+       {evex} negq     0x123(%r8,%rax,4)
+       {evex} not      %r15
+       {evex} not      %r15d
+       {evex} not      %r15w
+       {evex} not      %r8b
+       {evex} notb     0x123(%r8,%rax,4)
+       {evex} notw     0x123(%r8,%rax,4)
+       {evex} notl     0x123(%r8,%rax,4)
+       {evex} notq     0x123(%r8,%rax,4)
+       {evex} or       $0x7b,%r15
+       {evex} or       $0x7b,%r15d
+       {evex} or       $0x7b,%r15w
+       {evex} or       $0x7b,%r8b
+       {evex} orb      $0x7b,0x123(%r8,%rax,4)
+       {evex} orw      $0x7b,0x123(%r8,%rax,4)
+       {evex} orl      $0x7b,0x123(%r8,%rax,4)
+       {evex} orq      $0x7b,0x123(%r8,%rax,4)
+       {evex} or       %r15,%r15
+       {evex} or       %r15,0x123(%r8,%rax,4)
+       {evex} or       %r15d,%edx
+       {evex} or       %r15d,0x123(%r8,%rax,4)
+       {evex} or       %r15w,%ax
+       {evex} or       %r15w,0x123(%r8,%rax,4)
+       {evex} or       %r8b,%dl
+       {evex} or       %r8b,0x123(%r8,%rax,4)
+       {evex} or       0x123(%r8,%rax,4),%r15
+       {evex} or       0x123(%r8,%rax,4),%r15d
+       {evex} or       0x123(%r8,%rax,4),%r15w
+       {evex} or       0x123(%r8,%rax,4),%r8b
+       {evex} pdep     %r15,%r15,%r11
+       {evex} pdep     %r15d,%edx,%r10d
+       {evex} pdep     0x123(%r8,%rax,4),%r15,%r15
+       {evex} pdep     0x123(%r8,%rax,4),%r15d,%edx
+       {evex} pext     %r15,%r15,%r11
+       {evex} pext     %r15d,%edx,%r10d
+       {evex} pext     0x123(%r8,%rax,4),%r15,%r15
+       {evex} pext     0x123(%r8,%rax,4),%r15d,%edx
+       {evex} popcnt   %r15,%r15
+       {evex} popcnt   %r15d,%edx
+       {evex} popcnt   %r15w,%ax
+       {evex} popcnt   0x123(%r8,%rax,4),%r15
+       {evex} popcnt   0x123(%r8,%rax,4),%r15d
+       {evex} popcnt   0x123(%r8,%rax,4),%r15w
+       {evex} rcl      $0x7b,%r15
+       {evex} rcl      $0x7b,%r15d
+       {evex} rcl      $0x7b,%r15w
+       {evex} rcl      $0x7b,%r8b
+       {evex} rclb     $0x7b,0x123(%r8,%rax,4)
+       {evex} rclw     $0x7b,0x123(%r8,%rax,4)
+       {evex} rcll     $0x7b,0x123(%r8,%rax,4)
+       {evex} rclq     $0x7b,0x123(%r8,%rax,4)
+       {evex} rcl      $1,%r15
+       {evex} rcl      $1,%r15d
+       {evex} rcl      $1,%r15w
+       {evex} rcl      $1,%r8b
+       {evex} rclb     $1,0x123(%r8,%rax,4)
+       {evex} rclw     $1,0x123(%r8,%rax,4)
+       {evex} rcll     $1,0x123(%r8,%rax,4)
+       {evex} rclq     $1,0x123(%r8,%rax,4)
+       {evex} rcl      %cl,%r15
+       {evex} rcl      %cl,%r15d
+       {evex} rcl      %cl,%r15w
+       {evex} rcl      %cl,%r8b
+       {evex} rclb     %cl,0x123(%r8,%rax,4)
+       {evex} rclw     %cl,0x123(%r8,%rax,4)
+       {evex} rcll     %cl,0x123(%r8,%rax,4)
+       {evex} rclq     %cl,0x123(%r8,%rax,4)
+       {evex} rcr      $0x7b,%r15
+       {evex} rcr      $0x7b,%r15d
+       {evex} rcr      $0x7b,%r15w
+       {evex} rcr      $0x7b,%r8b
+       {evex} rcrb     $0x7b,0x123(%r8,%rax,4)
+       {evex} rcrw     $0x7b,0x123(%r8,%rax,4)
+       {evex} rcrl     $0x7b,0x123(%r8,%rax,4)
+       {evex} rcrq     $0x7b,0x123(%r8,%rax,4)
+       {evex} rcr      $1,%r15
+       {evex} rcr      $1,%r15d
+       {evex} rcr      $1,%r15w
+       {evex} rcr      $1,%r8b
+       {evex} rcrb     $1,0x123(%r8,%rax,4)
+       {evex} rcrw     $1,0x123(%r8,%rax,4)
+       {evex} rcrl     $1,0x123(%r8,%rax,4)
+       {evex} rcrq     $1,0x123(%r8,%rax,4)
+       {evex} rcr      %cl,%r15
+       {evex} rcr      %cl,%r15d
+       {evex} rcr      %cl,%r15w
+       {evex} rcr      %cl,%r8b
+       {evex} rcrb     %cl,0x123(%r8,%rax,4)
+       {evex} rcrw     %cl,0x123(%r8,%rax,4)
+       {evex} rcrl     %cl,0x123(%r8,%rax,4)
+       {evex} rcrq     %cl,0x123(%r8,%rax,4)
+       {evex} rol      $0x7b,%r15
+       {evex} rol      $0x7b,%r15d
+       {evex} rol      $0x7b,%r15w
+       {evex} rol      $0x7b,%r8b
+       {evex} rolb     $0x7b,0x123(%r8,%rax,4)
+       {evex} rolw     $0x7b,0x123(%r8,%rax,4)
+       {evex} roll     $0x7b,0x123(%r8,%rax,4)
+       {evex} rolq     $0x7b,0x123(%r8,%rax,4)
+       {evex} rol      $1,%r15
+       {evex} rol      $1,%r15d
+       {evex} rol      $1,%r15w
+       {evex} rol      $1,%r8b
+       {evex} rolb     $1,0x123(%r8,%rax,4)
+       {evex} rolw     $1,0x123(%r8,%rax,4)
+       {evex} roll     $1,0x123(%r8,%rax,4)
+       {evex} rolq     $1,0x123(%r8,%rax,4)
+       {evex} rol      %cl,%r15
+       {evex} rol      %cl,%r15d
+       {evex} rol      %cl,%r15w
+       {evex} rol      %cl,%r8b
+       {evex} rolb     %cl,0x123(%r8,%rax,4)
+       {evex} rolw     %cl,0x123(%r8,%rax,4)
+       {evex} roll     %cl,0x123(%r8,%rax,4)
+       {evex} rolq     %cl,0x123(%r8,%rax,4)
+       {evex} ror      $0x7b,%r15
+       {evex} ror      $0x7b,%r15d
+       {evex} ror      $0x7b,%r15w
+       {evex} ror      $0x7b,%r8b
+       {evex} rorb     $0x7b,0x123(%r8,%rax,4)
+       {evex} rorw     $0x7b,0x123(%r8,%rax,4)
+       {evex} rorl     $0x7b,0x123(%r8,%rax,4)
+       {evex} rorq     $0x7b,0x123(%r8,%rax,4)
+       {evex} ror      $1,%r15
+       {evex} ror      $1,%r15d
+       {evex} ror      $1,%r15w
+       {evex} ror      $1,%r8b
+       {evex} rorb     $1,0x123(%r8,%rax,4)
+       {evex} rorw     $1,0x123(%r8,%rax,4)
+       {evex} rorl     $1,0x123(%r8,%rax,4)
+       {evex} rorq     $1,0x123(%r8,%rax,4)
+       {evex} ror      %cl,%r15
+       {evex} ror      %cl,%r15d
+       {evex} ror      %cl,%r15w
+       {evex} ror      %cl,%r8b
+       {evex} rorb     %cl,0x123(%r8,%rax,4)
+       {evex} rorw     %cl,0x123(%r8,%rax,4)
+       {evex} rorl     %cl,0x123(%r8,%rax,4)
+       {evex} rorq     %cl,0x123(%r8,%rax,4)
+       {evex} rorx     $0x7b,%r15,%r15
+       {evex} rorx     $0x7b,%r15d,%edx
+       {evex} rorx     $0x7b,0x123(%r8,%rax,4),%r15
+       {evex} rorx     $0x7b,0x123(%r8,%rax,4),%r15d
+       {evex} sal      $0x7b,%r15
+       {evex} sal      $0x7b,%r15d
+       {evex} sal      $0x7b,%r15w
+       {evex} sal      $0x7b,%r8b
+       {evex} salb     $0x7b,0x123(%r8,%rax,4)
+       {evex} salw     $0x7b,0x123(%r8,%rax,4)
+       {evex} sall     $0x7b,0x123(%r8,%rax,4)
+       {evex} salq     $0x7b,0x123(%r8,%rax,4)
+       {evex} sal      $1,%r15
+       {evex} sal      $1,%r15d
+       {evex} sal      $1,%r15w
+       {evex} sal      $1,%r8b
+       {evex} salb     $1,0x123(%r8,%rax,4)
+       {evex} salw     $1,0x123(%r8,%rax,4)
+       {evex} sall     $1,0x123(%r8,%rax,4)
+       {evex} salq     $1,0x123(%r8,%rax,4)
+       {evex} sal      %cl,%r15
+       {evex} sal      %cl,%r15d
+       {evex} sal      %cl,%r15w
+       {evex} sal      %cl,%r8b
+       {evex} salb     %cl,0x123(%r8,%rax,4)
+       {evex} salw     %cl,0x123(%r8,%rax,4)
+       {evex} sall     %cl,0x123(%r8,%rax,4)
+       {evex} salq     %cl,0x123(%r8,%rax,4)
+       {evex} sar      $0x7b,%r15
+       {evex} sar      $0x7b,%r15d
+       {evex} sar      $0x7b,%r15w
+       {evex} sar      $0x7b,%r8b
+       {evex} sarb     $0x7b,0x123(%r8,%rax,4)
+       {evex} sarw     $0x7b,0x123(%r8,%rax,4)
+       {evex} sarl     $0x7b,0x123(%r8,%rax,4)
+       {evex} sarq     $0x7b,0x123(%r8,%rax,4)
+       {evex} sar      $1,%r15
+       {evex} sar      $1,%r15d
+       {evex} sar      $1,%r15w
+       {evex} sar      $1,%r8b
+       {evex} sarb     $1,0x123(%r8,%rax,4)
+       {evex} sarw     $1,0x123(%r8,%rax,4)
+       {evex} sarl     $1,0x123(%r8,%rax,4)
+       {evex} sarq     $1,0x123(%r8,%rax,4)
+       {evex} sar      %cl,%r15
+       {evex} sar      %cl,%r15d
+       {evex} sar      %cl,%r15w
+       {evex} sar      %cl,%r8b
+       {evex} sarb     %cl,0x123(%r8,%rax,4)
+       {evex} sarw     %cl,0x123(%r8,%rax,4)
+       {evex} sarl     %cl,0x123(%r8,%rax,4)
+       {evex} sarq     %cl,0x123(%r8,%rax,4)
+       {evex} sarx     %r15,%r15,%r11
+       {evex} sarx     %r15,0x123(%r8,%rax,4),%r15
+       {evex} sarx     %r15d,%edx,%r10d
+       {evex} sarx     %r15d,0x123(%r8,%rax,4),%edx
+       {evex} sbb      $0x7b,%r15
+       {evex} sbb      $0x7b,%r15d
+       {evex} sbb      $0x7b,%r15w
+       {evex} sbb      $0x7b,%r8b
+       {evex} sbbb     $0x7b,0x123(%r8,%rax,4)
+       {evex} sbbw     $0x7b,0x123(%r8,%rax,4)
+       {evex} sbbl     $0x7b,0x123(%r8,%rax,4)
+       {evex} sbbq     $0x7b,0x123(%r8,%rax,4)
+       {evex} sbb      %r15,%r15
+       {evex} sbb      %r15,0x123(%r8,%rax,4)
+       {evex} sbb      %r15d,%edx
+       {evex} sbb      %r15d,0x123(%r8,%rax,4)
+       {evex} sbb      %r15w,%ax
+       {evex} sbb      %r15w,0x123(%r8,%rax,4)
+       {evex} sbb      %r8b,%dl
+       {evex} sbb      %r8b,0x123(%r8,%rax,4)
+       {evex} sbb      0x123(%r8,%rax,4),%r15
+       {evex} sbb      0x123(%r8,%rax,4),%r15d
+       {evex} sbb      0x123(%r8,%rax,4),%r15w
+       {evex} sbb      0x123(%r8,%rax,4),%r8b
+       {evex} shl      $0x7b,%r15
+       {evex} shl      $0x7b,%r15d
+       {evex} shl      $0x7b,%r15w
+       {evex} shl      $0x7b,%r8b
+       {evex} shlb     $0x7b,0x123(%r8,%rax,4)
+       {evex} shlw     $0x7b,0x123(%r8,%rax,4)
+       {evex} shll     $0x7b,0x123(%r8,%rax,4)
+       {evex} shlq     $0x7b,0x123(%r8,%rax,4)
+       {evex} shl      $1,%r15
+       {evex} shl      $1,%r15d
+       {evex} shl      $1,%r15w
+       {evex} shl      $1,%r8b
+       {evex} shlb     $1,0x123(%r8,%rax,4)
+       {evex} shlw     $1,0x123(%r8,%rax,4)
+       {evex} shll     $1,0x123(%r8,%rax,4)
+       {evex} shlq     $1,0x123(%r8,%rax,4)
+       {evex} shl      %cl,%r15
+       {evex} shl      %cl,%r15d
+       {evex} shl      %cl,%r15w
+       {evex} shl      %cl,%r8b
+       {evex} shlb     %cl,0x123(%r8,%rax,4)
+       {evex} shlw     %cl,0x123(%r8,%rax,4)
+       {evex} shll     %cl,0x123(%r8,%rax,4)
+       {evex} shlq     %cl,0x123(%r8,%rax,4)
+       {evex} shld     $0x7b,%r15,%r15
+       {evex} shld     $0x7b,%r15,0x123(%r8,%rax,4)
+       {evex} shld     $0x7b,%r15d,%edx
+       {evex} shld     $0x7b,%r15d,0x123(%r8,%rax,4)
+       {evex} shld     $0x7b,%r15w,%ax
+       {evex} shld     $0x7b,%r15w,0x123(%r8,%rax,4)
+       {evex} shld     %cl,%r15,%r15
+       {evex} shld     %cl,%r15,0x123(%r8,%rax,4)
+       {evex} shld     %cl,%r15d,%edx
+       {evex} shld     %cl,%r15d,0x123(%r8,%rax,4)
+       {evex} shld     %cl,%r15w,%ax
+       {evex} shld     %cl,%r15w,0x123(%r8,%rax,4)
+       {evex} shlx     %r15,%r15,%r11
+       {evex} shlx     %r15,0x123(%r8,%rax,4),%r15
+       {evex} shlx     %r15d,%edx,%r10d
+       {evex} shlx     %r15d,0x123(%r8,%rax,4),%edx
+       {evex} shr      $0x7b,%r15
+       {evex} shr      $0x7b,%r15d
+       {evex} shr      $0x7b,%r15w
+       {evex} shr      $0x7b,%r8b
+       {evex} shrb     $0x7b,0x123(%r8,%rax,4)
+       {evex} shrw     $0x7b,0x123(%r8,%rax,4)
+       {evex} shrl     $0x7b,0x123(%r8,%rax,4)
+       {evex} shrq     $0x7b,0x123(%r8,%rax,4)
+       {evex} shr      $1,%r15
+       {evex} shr      $1,%r15d
+       {evex} shr      $1,%r15w
+       {evex} shr      $1,%r8b
+       {evex} shrb     $1,0x123(%r8,%rax,4)
+       {evex} shrw     $1,0x123(%r8,%rax,4)
+       {evex} shrl     $1,0x123(%r8,%rax,4)
+       {evex} shrq     $1,0x123(%r8,%rax,4)
+       {evex} shr      %cl,%r15
+       {evex} shr      %cl,%r15d
+       {evex} shr      %cl,%r15w
+       {evex} shr      %cl,%r8b
+       {evex} shrb     %cl,0x123(%r8,%rax,4)
+       {evex} shrw     %cl,0x123(%r8,%rax,4)
+       {evex} shrl     %cl,0x123(%r8,%rax,4)
+       {evex} shrq     %cl,0x123(%r8,%rax,4)
+       {evex} shrd     $0x7b,%r15,%r15
+       {evex} shrd     $0x7b,%r15,0x123(%r8,%rax,4)
+       {evex} shrd     $0x7b,%r15d,%edx
+       {evex} shrd     $0x7b,%r15d,0x123(%r8,%rax,4)
+       {evex} shrd     $0x7b,%r15w,%ax
+       {evex} shrd     $0x7b,%r15w,0x123(%r8,%rax,4)
+       {evex} shrd     %cl,%r15,%r15
+       {evex} shrd     %cl,%r15,0x123(%r8,%rax,4)
+       {evex} shrd     %cl,%r15d,%edx
+       {evex} shrd     %cl,%r15d,0x123(%r8,%rax,4)
+       {evex} shrd     %cl,%r15w,%ax
+       {evex} shrd     %cl,%r15w,0x123(%r8,%rax,4)
+       {evex} shrx     %r15,%r15,%r11
+       {evex} shrx     %r15,0x123(%r8,%rax,4),%r15
+       {evex} shrx     %r15d,%edx,%r10d
+       {evex} shrx     %r15d,0x123(%r8,%rax,4),%edx
+       {evex} sub      $0x7b,%r15
+       {evex} sub      $0x7b,%r15d
+       {evex} sub      $0x7b,%r15w
+       {evex} sub      $0x7b,%r8b
+       {evex} subb     $0x7b,0x123(%r8,%rax,4)
+       {evex} subw     $0x7b,0x123(%r8,%rax,4)
+       {evex} subl     $0x7b,0x123(%r8,%rax,4)
+       {evex} subq     $0x7b,0x123(%r8,%rax,4)
+       {evex} sub      %r15,%r15
+       {evex} sub      %r15,0x123(%r8,%rax,4)
+       {evex} sub      %r15d,%edx
+       {evex} sub      %r15d,0x123(%r8,%rax,4)
+       {evex} sub      %r15w,%ax
+       {evex} sub      %r15w,0x123(%r8,%rax,4)
+       {evex} sub      %r8b,%dl
+       {evex} sub      %r8b,0x123(%r8,%rax,4)
+       {evex} sub      0x123(%r8,%rax,4),%r15
+       {evex} sub      0x123(%r8,%rax,4),%r15d
+       {evex} sub      0x123(%r8,%rax,4),%r15w
+       {evex} sub      0x123(%r8,%rax,4),%r8b
+       {evex} tzcnt    %r15,%r15
+       {evex} tzcnt    %r15d,%edx
+       {evex} tzcnt    %r15w,%ax
+       {evex} tzcnt    0x123(%r8,%rax,4),%r15
+       {evex} tzcnt    0x123(%r8,%rax,4),%r15d
+       {evex} tzcnt    0x123(%r8,%rax,4),%r15w
+       {evex} wrssd    %r15d,0x123(%r8,%rax,4)
+       {evex} wrssq    %r15,0x123(%r8,%rax,4)
+       {evex} wrussd   %r15d,0x123(%r8,%rax,4)
+       {evex} wrussq   %r15,0x123(%r8,%rax,4)
+       {evex} xor      $0x7b,%r15
+       {evex} xor      $0x7b,%r15d
+       {evex} xor      $0x7b,%r15w
+       {evex} xor      $0x7b,%r8b
+       {evex} xorb     $0x7b,0x123(%r8,%rax,4)
+       {evex} xorw     $0x7b,0x123(%r8,%rax,4)
+       {evex} xorl     $0x7b,0x123(%r8,%rax,4)
+       {evex} xorq     $0x7b,0x123(%r8,%rax,4)
+       {evex} xor      %r15,%r15
+       {evex} xor      %r15,0x123(%r8,%rax,4)
+       {evex} xor      %r15d,%edx
+       {evex} xor      %r15d,0x123(%r8,%rax,4)
+       {evex} xor      %r15w,%ax
+       {evex} xor      %r15w,0x123(%r8,%rax,4)
+       {evex} xor      %r8b,%dl
+       {evex} xor      %r8b,0x123(%r8,%rax,4)
+       {evex} xor      0x123(%r8,%rax,4),%r15
+       {evex} xor      0x123(%r8,%rax,4),%r15d
+       {evex} xor      0x123(%r8,%rax,4),%r15w
+       {evex} xor      0x123(%r8,%rax,4),%r8b
index ccc8b559bf5b44564176e9f5a10b86093f7c392a..e5e469cfd4608eb43ebf94b714ffdf6217c496da 100644 (file)
@@ -133,6 +133,7 @@ run_dump_test "noreg64-data16"
 run_dump_test "noreg64-rex64"
 run_dump_test "noreg-intel64"
 run_list_test "noreg-intel64" "-I${srcdir}/$subdir -mintel64"
+run_dump_test "noreg64-evex"
 run_list_test "movx64" "-al"
 run_list_test "cvtsi2sX"
 run_list_test "x86-64-nosse2" "-al"
@@ -388,6 +389,7 @@ run_dump_test "x86-64-apx-jmpabs-intel"
 run_dump_test "x86-64-apx-jmpabs-inval"
 run_dump_test "x86-64-apx-nf"
 run_dump_test "x86-64-apx-nf-intel"
+run_dump_test "x86-64-apx_f-evex"
 run_dump_test "x86-64-avx512f-rcigrz-intel"
 run_dump_test "x86-64-avx512f-rcigrz"
 run_dump_test "x86-64-clwb"
index 7a41c76bb9dffb4889173ece3340f5e8dbe963f0..b158f2b0b89f4bf3c791e19cdb33118b18bf8c48 100644 (file)
@@ -983,8 +983,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 60 */
-    { "movbeS",        { Gv, Ev }, PREFIX_NP_OR_DATA },
-    { "movbeS",        { Ev, Gv }, PREFIX_NP_OR_DATA },
+    { "%MEmovbeS",     { Gv, Ev }, PREFIX_NP_OR_DATA },
+    { "%MEmovbeS",     { Ev, Gv }, PREFIX_NP_OR_DATA },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
index 5d2ec6d49a71d58eec5da32a94481a29c74e2112..3efe65af9407317e400255cc60e6f956058faec3 100644 (file)
@@ -1809,7 +1809,11 @@ struct dis386 {
    "XV" => print "{vex} " pseudo prefix
    "XE" => print "{evex} " pseudo prefix if no EVEX-specific functionality is
           is used by an EVEX-encoded (AVX512VL) instruction.
-   "NF" => print "{nf} " pseudo prefix when EVEX.NF = 1.
+   "ME" => print "{evex} " pseudo prefix for ins->modrm.mod != 3,if no
+          EVEX-specific functionality is used by an EVEX-encoded (AVX512VL)
+          instruction.
+   "NF" => print "{nf} " pseudo prefix when EVEX.NF = 1 and print "{evex} "
+          pseudo prefix when instructions without NF, EGPR and VVVV,
    "YK" keep unused, to avoid ambiguity with the combined use of Y and K.
    "YX" keep unused, to avoid ambiguity with the combined use of Y and X.
    "LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand, cond
@@ -3875,38 +3879,38 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_VEX_0F90_L_0_W_0 */
   {
-    { "kmovw",         { MaskG, MaskE }, 0 },
+    { "%XEkmovw",              { MaskG, MaskE }, 0 },
     { Bad_Opcode },
-    { "kmovb",         { MaskG, MaskBDE }, 0 },
+    { "%XEkmovb",              { MaskG, MaskBDE }, 0 },
   },
 
   /* PREFIX_VEX_0F90_L_0_W_1 */
   {
-    { "kmovq",         { MaskG, MaskE }, 0 },
+    { "%XEkmovq",              { MaskG, MaskE }, 0 },
     { Bad_Opcode },
-    { "kmovd",         { MaskG, MaskBDE }, 0 },
+    { "%XEkmovd",              { MaskG, MaskBDE }, 0 },
   },
 
   /* PREFIX_VEX_0F91_L_0_W_0 */
   {
-    { "kmovw",         { Mw, MaskG }, 0 },
+    { "%XEkmovw",              { Mw, MaskG }, 0 },
     { Bad_Opcode },
-    { "kmovb",         { Mb, MaskG }, 0 },
+    { "%XEkmovb",              { Mb, MaskG }, 0 },
   },
 
   /* PREFIX_VEX_0F91_L_0_W_1 */
   {
-    { "kmovq",         { Mq, MaskG }, 0 },
+    { "%XEkmovq",              { Mq, MaskG }, 0 },
     { Bad_Opcode },
-    { "kmovd",         { Md, MaskG }, 0 },
+    { "%XEkmovd",              { Md, MaskG }, 0 },
   },
 
   /* PREFIX_VEX_0F92_L_0_W_0 */
   {
-    { "kmovw",         { MaskG, Rdq }, 0 },
+    { "%XEkmovw",              { MaskG, Rdq }, 0 },
     { Bad_Opcode },
-    { "kmovb",         { MaskG, Rdq }, 0 },
-    { "kmovd",         { MaskG, Rdq }, 0 },
+    { "%XEkmovb",              { MaskG, Rdq }, 0 },
+    { "%XEkmovd",              { MaskG, Rdq }, 0 },
   },
 
   /* PREFIX_VEX_0F92_L_0_W_1 */
@@ -3914,15 +3918,15 @@ static const struct dis386 prefix_table[][4] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "kmovK",         { MaskG, Rdq }, 0 },
+    { "%XEkmovK",              { MaskG, Rdq }, 0 },
   },
 
   /* PREFIX_VEX_0F93_L_0_W_0 */
   {
-    { "kmovw",         { Gdq, MaskR }, 0 },
+    { "%XEkmovw",              { Gdq, MaskR }, 0 },
     { Bad_Opcode },
-    { "kmovb",         { Gdq, MaskR }, 0 },
-    { "kmovd",         { Gdq, MaskR }, 0 },
+    { "%XEkmovb",              { Gdq, MaskR }, 0 },
+    { "%XEkmovd",              { Gdq, MaskR }, 0 },
   },
 
   /* PREFIX_VEX_0F93_L_0_W_1 */
@@ -3930,7 +3934,7 @@ static const struct dis386 prefix_table[][4] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "kmovK",         { Gdq, MaskR }, 0 },
+    { "%XEkmovK",              { Gdq, MaskR }, 0 },
   },
 
   /* PREFIX_VEX_0F98_L_0_W_0 */
@@ -4102,9 +4106,9 @@ static const struct dis386 prefix_table[][4] = {
   /* PREFIX_VEX_0F38F5_L_0 */
   {
     { "%NFbzhiS",      { Gdq, Edq, VexGdq }, 0 },
-    { "pextS",         { Gdq, VexGdq, Edq }, 0 },
+    { "%XEpextS",              { Gdq, VexGdq, Edq }, 0 },
     { Bad_Opcode },
-    { "pdepS",         { Gdq, VexGdq, Edq }, 0 },
+    { "%XEpdepS",              { Gdq, VexGdq, Edq }, 0 },
   },
 
   /* PREFIX_VEX_0F38F6_L_0 */
@@ -4112,15 +4116,15 @@ static const struct dis386 prefix_table[][4] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "mulxS",         { Gdq, VexGdq, Edq }, 0 },
+    { "%XEmulxS",              { Gdq, VexGdq, Edq }, 0 },
   },
 
   /* PREFIX_VEX_0F38F7_L_0 */
   {
     { "%NFbextrS",     { Gdq, Edq, VexGdq }, 0 },
-    { "sarxS",         { Gdq, Edq, VexGdq }, 0 },
-    { "shlxS",         { Gdq, Edq, VexGdq }, 0 },
-    { "shrxS",         { Gdq, Edq, VexGdq }, 0 },
+    { "%XEsarxS",              { Gdq, Edq, VexGdq }, 0 },
+    { "%XEshlxS",              { Gdq, Edq, VexGdq }, 0 },
+    { "%XEshrxS",              { Gdq, Edq, VexGdq }, 0 },
   },
 
   /* PREFIX_VEX_0F3AF0_L_0 */
@@ -4128,7 +4132,7 @@ static const struct dis386 prefix_table[][4] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "rorxS",         { Gdq, Edq, Ib }, 0 },
+    { "%XErorxS",              { Gdq, Edq, Ib }, 0 },
   },
 
   /* PREFIX_VEX_MAP7_F8_L_0_W_0_R_0_X86_64 */
@@ -4492,97 +4496,97 @@ static const struct dis386 x86_64_table[][2] = {
   /* X86_64_VEX_0F38E0 */
   {
     { Bad_Opcode },
-    { "cmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E1 */
   {
     { Bad_Opcode },
-    { "cmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E2 */
   {
     { Bad_Opcode },
-    { "cmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E3 */
   {
     { Bad_Opcode },
-    { "cmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E4 */
   {
     { Bad_Opcode },
-    { "cmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E5 */
   {
     { Bad_Opcode },
-    { "cmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E6 */
   {
     { Bad_Opcode },
-    { "cmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E7 */
   {
     { Bad_Opcode },
-    { "cmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E8 */
   {
     { Bad_Opcode },
-    { "cmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38E9 */
   {
     { Bad_Opcode },
-    { "cmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38EA */
   {
     { Bad_Opcode },
-    { "cmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38EB */
   {
     { Bad_Opcode },
-    { "cmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38EC */
   {
     { Bad_Opcode },
-    { "cmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38ED */
   {
     { Bad_Opcode },
-    { "cmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38EE */
   {
     { Bad_Opcode },
-    { "cmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_0F38EF */
   {
     { Bad_Opcode },
-    { "cmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
 
   /* X86_64_VEX_MAP7_F8_L_0_W_0_R_0 */
@@ -10391,6 +10395,16 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
   int cond = 1;
   unsigned int l = 0, len = 0;
   char last[4];
+  bool evex_printed = false;
+
+  /* We don't want to add any prefix or suffix to (bad), so return early.  */
+  if (!strncmp (in_template, "(bad)", 5))
+    {
+      oappend (ins, "(bad)");
+      *ins->obufp = 0;
+      ins->mnemonicendp = ins->obufp;
+      return 0;
+    }
 
   for (p = in_template; *p; p++)
     {
@@ -10404,6 +10418,12 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
       switch (*p)
        {
        default:
+         if (ins->evex_type == evex_from_legacy && !ins->vex.nd
+             && !(ins->rex2 & 7) && !evex_printed)
+           {
+             oappend (ins, "{evex} ");
+             evex_printed = true;
+           }
          *ins->obufp++ = *p;
          break;
        case '%':
@@ -10540,6 +10560,11 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
                  *ins->obufp++ = '}';
                  *ins->obufp++ = ' ';
                  break;
+               case 'M':
+                 if (ins->modrm.mod != 3 && !(ins->rex2 & 7))
+                   oappend (ins, "{evex} ");
+                 evex_printed = true;
+                 break;
                default:
                  abort ();
                }
@@ -10581,6 +10606,13 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
                  oappend (ins, "{nf} ");
                  /* This bit needs to be cleared after it is consumed.  */
                  ins->vex.nf = false;
+                 evex_printed = true;
+               }
+             else if (ins->evex_type == evex_from_vex && !(ins->rex2 & 7)
+                      && ins->vex.v)
+               {
+                 oappend (ins, "{evex} ");
+                 evex_printed = true;
                }
            }
          else