public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/6] [RFC] Support Intel APX EGPR (part II)
@ 2023-09-21 10:11 Cui, Lili
  2023-09-21 10:11 ` [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32 Cui, Lili
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Cui, Lili @ 2023-09-21 10:11 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant

Add another 6 patches to support Intel APX EGPR.

Cui, Lili (1):
  Disable pseudo prefix {rex2} for illegal instructions.

H.J. Lu (3):
  x86-64: Add R_X86_64_CODE_4_GOTPCRELX
  gold: Handle R_X86_64_CODE_4_GOTPCRELX
  For

Hu, Lin1 (1):
  Support {evex} pseudo prefix for decode evex promoted insns without
    egpr32.

hjl-tools (1):
  Gold: Handle R_X86_64_CODE_4_GOTPC32_TLSDESC/R_X86_64_CODE_4_GOTTPOFF

 bfd/bfd-in2.h                                 |    3 +
 bfd/elf64-x86-64.c                            |  196 ++-
 bfd/libbfd.h                                  |    3 +
 bfd/reloc.c                                   |    6 +
 elfcpp/x86_64.h                               |   14 +-
 gas/config/tc-i386.c                          |   42 +-
 gas/config/tc-i386.h                          |    6 +-
 .../gas/i386/ilp32/x86-64-localpic.d          |    4 +-
 .../gas/i386/x86-64-apx_f-evex-intel.d        | 1184 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx_f-evex.d    | 1184 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx_f-evex.s    | 1180 ++++++++++++++++
 gas/testsuite/gas/i386/x86-64-gotpcrel.d      |   12 +
 gas/testsuite/gas/i386/x86-64-gotpcrel.s      |   19 +
 gas/testsuite/gas/i386/x86-64-gottpoff.d      |   19 +
 gas/testsuite/gas/i386/x86-64-gottpoff.s      |   15 +
 gas/testsuite/gas/i386/x86-64-localpic.d      |    4 +-
 gas/testsuite/gas/i386/x86-64-localpic.s      |    2 +
 gas/testsuite/gas/i386/x86-64-pseudos-bad.l   |   36 +
 gas/testsuite/gas/i386/x86-64-pseudos-bad.s   |   42 +
 gas/testsuite/gas/i386/x86-64-pseudos.d       |    1 -
 gas/testsuite/gas/i386/x86-64-pseudos.s       |    1 -
 gas/testsuite/gas/i386/x86-64-tlsdesc.d       |   17 +
 gas/testsuite/gas/i386/x86-64-tlsdesc.s       |   13 +
 gas/testsuite/gas/i386/x86-64.exp             |    5 +
 gas/write.h                                   |    3 +-
 gold/testsuite/Makefile.am                    |   11 +
 gold/testsuite/Makefile.in                    |   17 +
 gold/testsuite/x86_64_gd_to_le.s              |    1 +
 gold/testsuite/x86_64_gd_to_le.sh             |    1 +
 gold/testsuite/x86_64_ie_to_le.s              |   17 +
 gold/testsuite/x86_64_ie_to_le.sh             |   29 +
 gold/testsuite/x86_64_mov_to_lea.sh           |   16 +
 gold/testsuite/x86_64_mov_to_lea1.s           |    1 +
 gold/testsuite/x86_64_mov_to_lea2.s           |    1 +
 gold/testsuite/x86_64_mov_to_lea3.s           |    1 +
 gold/testsuite/x86_64_mov_to_lea4.s           |    1 +
 gold/testsuite/x86_64_mov_to_lea5.s           |    1 +
 gold/x86_64.cc                                |  193 ++-
 include/elf/x86-64.h                          |   12 +-
 ld/testsuite/ld-x86-64/apx-load1.s            |   51 +
 ld/testsuite/ld-x86-64/apx-load1a.d           |   54 +
 ld/testsuite/ld-x86-64/apx-load1b.d           |   55 +
 ld/testsuite/ld-x86-64/apx-load1c.d           |   47 +
 ld/testsuite/ld-x86-64/apx-load1d.d           |   47 +
 ld/testsuite/ld-x86-64/tlsbindesc.dd          |   49 +
 ld/testsuite/ld-x86-64/tlsbindesc.rd          |   36 +-
 ld/testsuite/ld-x86-64/tlsbindesc.s           |   39 +
 ld/testsuite/ld-x86-64/x86-64.exp             |    4 +
 opcodes/i386-dis-evex-len.h                   |    2 +-
 opcodes/i386-dis-evex-mod.h                   |   24 +-
 opcodes/i386-dis-evex-prefix.h                |   36 +-
 opcodes/i386-dis-evex-reg.h                   |   50 +-
 opcodes/i386-dis-evex-x86.h                   |   32 +-
 opcodes/i386-dis-evex.h                       |   20 +-
 opcodes/i386-dis.c                            |   53 +-
 opcodes/i386-opc.tbl                          |   70 +-
 56 files changed, 4743 insertions(+), 239 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-gottpoff.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-gottpoff.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-tlsdesc.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-tlsdesc.s
 create mode 100644 gold/testsuite/x86_64_ie_to_le.s
 create mode 100755 gold/testsuite/x86_64_ie_to_le.sh
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1.s
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1a.d
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1b.d
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1c.d
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1d.d

-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32.
  2023-09-21 10:11 [PATCH 0/6] [RFC] Support Intel APX EGPR (part II) Cui, Lili
@ 2023-09-21 10:11 ` Cui, Lili
  2023-09-22  9:13   ` Jan Beulich
  2023-09-28 14:36   ` Jan Beulich
  2023-09-21 10:11 ` [PATCH 2/6] Disable pseudo prefix {rex2} for illegal instructions Cui, Lili
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 11+ messages in thread
From: Cui, Lili @ 2023-09-21 10:11 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant, Hu, Lin1

From: "Hu, Lin1" <lin1.hu@intel.com>

gas/ChangeLog:

	* config/tc-i386.c (match_template): Support D for APX_F insns
	with 2 operands.
	* testsuite/gas/i386/x86-64.exp: Add tests.
	* testsuite/gas/i386/x86-64-apx_f-evex-intel.d: New test.
	* 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-len.h: Add %XE for output {evex} when evex prefix is unused.
	* i386-dis-evex-mod.h: Ditto.
	* i386-dis-evex-prefix.h: Ditto.
	* i386-dis-evex-reg.h: Ditto.
	* i386-dis-evex-x86.h: Ditto.
	* i386-dis-evex.h: Ditto.
	* i386-dis.c (putop): Add some conditions for disable {evex} pseudo
	prefix.
---
 gas/config/tc-i386.c                          |    2 +
 .../gas/i386/x86-64-apx_f-evex-intel.d        | 1184 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx_f-evex.d    | 1184 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx_f-evex.s    | 1180 ++++++++++++++++
 gas/testsuite/gas/i386/x86-64.exp             |    2 +
 opcodes/i386-dis-evex-len.h                   |    2 +-
 opcodes/i386-dis-evex-mod.h                   |   24 +-
 opcodes/i386-dis-evex-prefix.h                |   36 +-
 opcodes/i386-dis-evex-reg.h                   |   50 +-
 opcodes/i386-dis-evex-x86.h                   |   32 +-
 opcodes/i386-dis-evex.h                       |   20 +-
 opcodes/i386-dis.c                            |   53 +-
 12 files changed, 3662 insertions(+), 107 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx_f-evex.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 36720d40eb0..8bdd386ed47 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7581,6 +7581,8 @@ match_template (char mnem_suffix)
 		}
 	      else if (t->opcode_space != SPACE_BASE
 		       && !t->opcode_modifier.nf
+		       && (t->opcode_space != SPACE_EVEXMAP4
+			   || t->mnem_off == MN_movbe)
 		       && (t->opcode_space != SPACE_0F
 			   /* MOV to/from CR/DR/TR, as an exception, follow
 			      the base opcode space encoding model.  */
diff --git a/gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d b/gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d
new file mode 100644
index 00000000000..2696cabcabd
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex-intel.d
@@ -0,0 +1,1184 @@
+#as:
+#objdump: -dw -Mintel
+#name: x86_64 APX_F insns with evex pseudo prefix (Intel disassembly)
+#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\}\s+aadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\}\s+adc\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\}\s+adc\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\}\s+adc\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\}\s+adc\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\}\s+adc\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\}\s+adc\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\}\s+adc\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\}\s+adc\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\}\s+adc\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\}\s+adcx\s+r15,r15
+\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\}\s+adcx\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\}\s+add\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\}\s+add\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\}\s+add\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\}\s+add\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\}\s+add\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\}\s+add\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\}\s+add\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\}\s+add\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\}\s+add\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\}\s+adox\s+r15,r15
+\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\}\s+adox\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\}\s+aesdec128kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\}\s+aesdec256kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\}\s+aesdecwide128kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\}\s+aesdecwide256kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\}\s+aesenc128kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\}\s+aesenc256kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\}\s+aesencwide128kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\}\s+aesencwide256kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\}\s+and\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\}\s+and\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\}\s+and\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\}\s+and\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\}\s+and\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\}\s+and\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\}\s+and\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\}\s+and\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\}\s+and\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\}\s+andn\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\}\s+andn\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\}\s+andn\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\}\s+andn\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\}\s+dec\s+r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\}\s+dec\s+r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\}\s+dec\s+r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\}\s+dec\s+r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\}\s+div\s+r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\}\s+div\s+r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\}\s+div\s+r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\}\s+div\s+r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\}\s+div\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 da d7\s+\{evex\}\s+encodekey128\s+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\}\s+encodekey256\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15d,\[r8d\+eax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15d,\[r8d\+eax\*4\+0x123\]
+\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\} idiv\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\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+ax,r15w
+\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\} imul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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\} inc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\}\s+kmovb\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\}\s+kmovb\s+r15d,k5
+\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\}\s+kmovb\s+k5,r15d
+\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+k5,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\}\s+kmovd\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\}\s+kmovd\s+r15d,k5
+\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\}\s+kmovd\s+k5,r15d
+\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+k5,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\}\s+kmovq\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\}\s+kmovq\s+r15,k5
+\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\}\s+kmovq\s+k5,r15
+\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+k5,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\}\s+kmovw\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\}\s+kmovw\s+r15d,k5
+\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\}\s+kmovw\s+k5,r15d
+\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+k5,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 08 60 ff\s+\{evex\} movbe\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 60 d7\s+\{evex\} movbe\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 60 c7\s+\{evex\} movbe\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15d,\[r8d\+eax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\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\} mul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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\} neg\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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\} not\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\}\s+rcl\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\}\s+rcl\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\}\s+rcl\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\}\s+rcl\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\}\s+rcl\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\}\s+rcl\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\}\s+rcl\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\}\s+rcl\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\}\s+rcl\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\}\s+rcr\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\}\s+rcr\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\}\s+rcr\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\}\s+rcr\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\}\s+rcr\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\}\s+rcr\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\}\s+rcr\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\}\s+rcr\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\}\s+rcr\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\}\s+rol\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\}\s+rol\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\}\s+rol\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\}\s+rol\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\}\s+rol\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\}\s+rol\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\}\s+rol\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\}\s+rol\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\}\s+rol\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\}\s+ror\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\}\s+ror\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\}\s+ror\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\}\s+ror\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\}\s+ror\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\}\s+ror\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\}\s+ror\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\}\s+ror\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\}\s+ror\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\}\s+rorx\s+r15,r15,0x7b
+\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\}\s+rorx\s+edx,r15d,0x7b
+\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 d9 e5\s+\{evex\} sha1msg1 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4 xmm12,xmm13,0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],xmm0
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+r15,r15,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b
+\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+edx,r15d,0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b
+\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+ax,r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+r15,r15,cl
+\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl
+\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+edx,r15d,cl
+\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl
+\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+ax,r15w,cl
+\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl
+\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+r15,r15,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b
+\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+edx,r15d,0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b
+\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+ax,r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+r15,r15,cl
+\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl
+\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+edx,r15d,cl
+\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl
+\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+ax,r15w,cl
+\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl
+\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7c 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fd 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7d 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aand\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 d7 7b\s+\{evex\}\s+adc\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 d7 7b\s+\{evex\}\s+adc\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 d7 7b\s+\{evex\}\s+adc\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 d0 7b\s+\{evex\}\s+adc\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 94 80 23 01 00 00 7b\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 11 ff\s+\{evex\}\s+adc\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 11 fa\s+\{evex\}\s+adc\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 11 f8\s+\{evex\}\s+adc\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 11 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 10 c2\s+\{evex\}\s+adc\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 10 84 80 23 01 00 00\s+\{evex\}\s+adc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 13 bc 80 23 01 00 00\s+\{evex\}\s+adc\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 12 84 80 23 01 00 00\s+\{evex\}\s+adc\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fd 08 66 ff\s+\{evex\}\s+adcx\s+r15,r15
+\s*[a-f0-9]+:\s*62 d4 7d 08 66 d7\s+\{evex\}\s+adcx\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 fd 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adcx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 c7 7b\s+\{evex\}\s+add\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 c7 7b\s+\{evex\}\s+add\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 c7 7b\s+\{evex\}\s+add\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 c0 7b\s+\{evex\}\s+add\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 84 80 23 01 00 00 7b\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 01 ff\s+\{evex\}\s+add\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 01 fa\s+\{evex\}\s+add\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 01 f8\s+\{evex\}\s+add\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 01 bc 80 23 01 00 00\s+\{evex\}\s+add\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 00 c2\s+\{evex\}\s+add\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 00 84 80 23 01 00 00\s+\{evex\}\s+add\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 03 bc 80 23 01 00 00\s+\{evex\}\s+add\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 02 84 80 23 01 00 00\s+\{evex\}\s+add\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fe 08 66 ff\s+\{evex\}\s+adox\s+r15,r15
+\s*[a-f0-9]+:\s*62 d4 7e 08 66 d7\s+\{evex\}\s+adox\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 fe 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 66 bc 80 23 01 00 00\s+\{evex\}\s+adox\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\}\s+aesdec128kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\}\s+aesdec256kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\}\s+aesdecwide128kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\}\s+aesdecwide256kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\}\s+aesenc128kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\}\s+aesenc256kl xmm12,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\}\s+aesencwide128kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\}\s+aesencwide256kl\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 e7 7b\s+\{evex\}\s+and\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 e7 7b\s+\{evex\}\s+and\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 e7 7b\s+\{evex\}\s+and\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 e0 7b\s+\{evex\}\s+and\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 a4 80 23 01 00 00 7b\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 21 ff\s+\{evex\}\s+and\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 21 fa\s+\{evex\}\s+and\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 21 f8\s+\{evex\}\s+and\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 21 bc 80 23 01 00 00\s+\{evex\}\s+and\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 20 c2\s+\{evex\}\s+and\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 20 84 80 23 01 00 00\s+\{evex\}\s+and\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 23 bc 80 23 01 00 00\s+\{evex\}\s+and\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 22 84 80 23 01 00 00\s+\{evex\}\s+and\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 84 08 f2 df\s+\{evex\}\s+andn\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6c 08 f2 d7\s+\{evex\}\s+andn\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 84 08 f2 bc 80 23 01 00 00\s+\{evex\}\s+andn\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f2 94 80 23 01 00 00\s+\{evex\}\s+andn\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 ff 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7f 08 fc bc 80 23 01 00 00\s+\{evex\}\s+aor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fe 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7e 08 fc bc 80 23 01 00 00\s+\{evex\}\s+axor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 52 84 08 f7 df\s+\{evex\} bextr\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 84 08 f7 bc 80 23 01 00 00\s+\{evex\} bextr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 04 08 f7 d2\s+\{evex\} bextr\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 04 08 f7 94 80 23 01 00 00\s+\{evex\} bextr\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 9c 80 23 01 00 00\s+\{evex\} blsi\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 94 80 23 01 00 00\s+\{evex\} blsmsk\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d2 84 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 04 08 f3 8c 80 23 01 00 00\s+\{evex\} blsr\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 84 08 f5 df\s+\{evex\} bzhi\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 84 08 f5 bc 80 23 01 00 00\s+\{evex\} bzhi\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 04 08 f5 d2\s+\{evex\} bzhi\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 04 08 f5 94 80 23 01 00 00\s+\{evex\} bzhi\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e6 bc 80 23 01 00 00\s+\{evex\} cmpbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e6 94 80 23 01 00 00\s+\{evex\} cmpbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e2 bc 80 23 01 00 00\s+\{evex\} cmpbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e2 94 80 23 01 00 00\s+\{evex\} cmpbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ee bc 80 23 01 00 00\s+\{evex\} cmplexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ee 94 80 23 01 00 00\s+\{evex\} cmplexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ec bc 80 23 01 00 00\s+\{evex\} cmplxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ec 94 80 23 01 00 00\s+\{evex\} cmplxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e7 bc 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e7 94 80 23 01 00 00\s+\{evex\} cmpnbexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e3 bc 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e3 94 80 23 01 00 00\s+\{evex\} cmpnbxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ef bc 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ef 94 80 23 01 00 00\s+\{evex\} cmpnlexadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ed bc 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ed 94 80 23 01 00 00\s+\{evex\} cmpnlxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e1 bc 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e1 94 80 23 01 00 00\s+\{evex\} cmpnoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 eb bc 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 eb 94 80 23 01 00 00\s+\{evex\} cmpnpxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e9 bc 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e9 94 80 23 01 00 00\s+\{evex\} cmpnsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e5 bc 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e5 94 80 23 01 00 00\s+\{evex\} cmpnzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e0 bc 80 23 01 00 00\s+\{evex\} cmpoxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e0 94 80 23 01 00 00\s+\{evex\} cmpoxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 ea bc 80 23 01 00 00\s+\{evex\} cmppxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 ea 94 80 23 01 00 00\s+\{evex\} cmppxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e8 bc 80 23 01 00 00\s+\{evex\} cmpsxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e8 94 80 23 01 00 00\s+\{evex\} cmpsxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 52 85 08 e4 bc 80 23 01 00 00\s+\{evex\} cmpzxadd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,r15
+\s*[a-f0-9]+:\s*62 d2 05 08 e4 94 80 23 01 00 00\s+\{evex\} cmpzxadd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],edx,r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff cf\s+\{evex\}\s+dec\s+r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff cf\s+\{evex\}\s+dec\s+r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff cf\s+\{evex\}\s+dec\s+r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe c8\s+\{evex\}\s+dec\s+r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 fe 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff 8c 80 23 01 00 00\s+\{evex\}\s+dec\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 f7\s+\{evex\}\s+div\s+r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 f7\s+\{evex\}\s+div\s+r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 f7\s+\{evex\}\s+div\s+r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 f0\s+\{evex\}\s+div\s+r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 f6 b4 80 23 01 00 00\s+\{evex\}\s+div\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 b4 80 23 01 00 00\s+\{evex\}\s+div\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7e 08 da d7\s+\{evex\}\s+encodekey128\s+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\}\s+encodekey256\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 54 7f 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmd\s+r15d,\[r8d\+eax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 54 7e 08 f8 bc 80 23 01 00 00\s+\{evex\}\s+enqcmds\s+r15d,\[r8d\+eax\*4\+0x123\]
+\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\} idiv\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 bc 80 23 01 00 00\s+\{evex\} idiv\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\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+ax,r15w
+\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\} imul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 af bc 80 23 01 00 00\s+\{evex\} imul\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 ac 80 23 01 00 00\s+\{evex\} imul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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\} inc\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 ff 84 80 23 01 00 00\s+\{evex\} inc\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f0 bc 80 23 01 00 00\s+\{evex\} invept\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f2 bc 80 23 01 00 00\s+\{evex\} invpcid\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7e 08 f1 bc 80 23 01 00 00\s+\{evex\} invvpid\s+r15,OWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 7d 08 90 eb\s+\{evex\}\s+kmovb\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 7d 08 93 fd\s+\{evex\}\s+kmovb\s+r15d,k5
+\s*[a-f0-9]+:\s*62 d1 7d 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 7d 08 92 ef\s+\{evex\}\s+kmovb\s+k5,r15d
+\s*[a-f0-9]+:\s*62 d1 7d 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovb\s+k5,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 fd 08 90 eb\s+\{evex\}\s+kmovd\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 7f 08 93 fd\s+\{evex\}\s+kmovd\s+r15d,k5
+\s*[a-f0-9]+:\s*62 d1 fd 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 7f 08 92 ef\s+\{evex\}\s+kmovd\s+k5,r15d
+\s*[a-f0-9]+:\s*62 d1 fd 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovd\s+k5,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 fc 08 90 eb\s+\{evex\}\s+kmovq\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 ff 08 93 fd\s+\{evex\}\s+kmovq\s+r15,k5
+\s*[a-f0-9]+:\s*62 d1 fc 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 ff 08 92 ef\s+\{evex\}\s+kmovq\s+k5,r15
+\s*[a-f0-9]+:\s*62 d1 fc 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovq\s+k5,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f1 7c 08 90 eb\s+\{evex\}\s+kmovw\s+k5,k3
+\s*[a-f0-9]+:\s*62 71 7c 08 93 fd\s+\{evex\}\s+kmovw\s+r15d,k5
+\s*[a-f0-9]+:\s*62 d1 7c 08 91 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d1 7c 08 92 ef\s+\{evex\}\s+kmovw\s+k5,r15d
+\s*[a-f0-9]+:\s*62 d1 7c 08 90 ac 80 23 01 00 00\s+\{evex\}\s+kmovw\s+k5,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f5 c7\s+\{evex\} lzcnt\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 f5 bc 80 23 01 00 00\s+\{evex\} lzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 08 60 ff\s+\{evex\} movbe\s+r15,r15
+\s*[a-f0-9]+:\s*62 54 fc 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 60 d7\s+\{evex\} movbe\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 60 c7\s+\{evex\} movbe\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 61 bc 80 23 01 00 00\s+\{evex\} movbe\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 60 bc 80 23 01 00 00\s+\{evex\} movbe\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15,\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 54 7d 08 f8 bc 80 23 01 00 00\s+\{evex\} movdir64b\s+r15d,\[r8d\+eax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7c 08 f9 bc 80 23 01 00 00\s+\{evex\} movdiri\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\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\} mul\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 a4 80 23 01 00 00\s+\{evex\} mul\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 87 08 f6 df\s+\{evex\} mulx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6f 08 f6 d7\s+\{evex\} mulx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 87 08 f6 bc 80 23 01 00 00\s+\{evex\} mulx\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 07 08 f6 94 80 23 01 00 00\s+\{evex\} mulx\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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\} neg\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 9c 80 23 01 00 00\s+\{evex\} neg\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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\} not\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 f7 94 80 23 01 00 00\s+\{evex\} not\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 cf 7b\s+\{evex\} or\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 cf 7b\s+\{evex\} or\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 cf 7b\s+\{evex\} or\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 c8 7b\s+\{evex\} or\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 8c 80 23 01 00 00 7b\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 8c 80 23 01 00 00 7b\s+\{evex\} or\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 09 fa\s+\{evex\} or\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 09 f8\s+\{evex\} or\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 09 bc 80 23 01 00 00\s+\{evex\} or\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 08 c2\s+\{evex\} or\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 08 84 80 23 01 00 00\s+\{evex\} or\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 0b bc 80 23 01 00 00\s+\{evex\} or\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 0a 84 80 23 01 00 00\s+\{evex\} or\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 87 08 f5 df\s+\{evex\} pdep\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6f 08 f5 d7\s+\{evex\} pdep\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 87 08 f5 bc 80 23 01 00 00\s+\{evex\} pdep\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 07 08 f5 94 80 23 01 00 00\s+\{evex\} pdep\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 52 86 08 f5 df\s+\{evex\} pext\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 6e 08 f5 d7\s+\{evex\} pext\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 52 86 08 f5 bc 80 23 01 00 00\s+\{evex\} pext\s+r15,r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 06 08 f5 94 80 23 01 00 00\s+\{evex\} pext\s+edx,r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 88 c7\s+\{evex\} popcnt\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 88 bc 80 23 01 00 00\s+\{evex\} popcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 d7 7b\s+\{evex\}\s+rcl\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d0 7b\s+\{evex\}\s+rcl\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 94 80 23 01 00 00 7b\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 d7\s+\{evex\}\s+rcl\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\}\s+rcl\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\}\s+rcl\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\}\s+rcl\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 d7\s+\{evex\}\s+rcl\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 d7\s+\{evex\}\s+rcl\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 d7\s+\{evex\}\s+rcl\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d0\s+\{evex\}\s+rcl\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 94 80 23 01 00 00\s+\{evex\}\s+rcl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 df 7b\s+\{evex\}\s+rcr\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 d8 7b\s+\{evex\}\s+rcr\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 9c 80 23 01 00 00 7b\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 df\s+\{evex\}\s+rcr\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\}\s+rcr\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\}\s+rcr\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\}\s+rcr\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 df\s+\{evex\}\s+rcr\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 df\s+\{evex\}\s+rcr\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 df\s+\{evex\}\s+rcr\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 d8\s+\{evex\}\s+rcr\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 9c 80 23 01 00 00\s+\{evex\}\s+rcr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 c7 7b\s+\{evex\}\s+rol\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c0 7b\s+\{evex\}\s+rol\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 84 80 23 01 00 00 7b\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 c7\s+\{evex\}\s+rol\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\}\s+rol\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\}\s+rol\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\}\s+rol\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 c7\s+\{evex\}\s+rol\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 c7\s+\{evex\}\s+rol\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 c7\s+\{evex\}\s+rol\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c0\s+\{evex\}\s+rol\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 84 80 23 01 00 00\s+\{evex\}\s+rol\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 84 80 23 01 00 00\s+\{evex\}\s+rol\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 cf 7b\s+\{evex\}\s+ror\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 c8 7b\s+\{evex\}\s+ror\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 8c 80 23 01 00 00 7b\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 cf\s+\{evex\}\s+ror\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\}\s+ror\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\}\s+ror\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\}\s+ror\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 cf\s+\{evex\}\s+ror\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 cf\s+\{evex\}\s+ror\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 cf\s+\{evex\}\s+ror\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 c8\s+\{evex\}\s+ror\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 8c 80 23 01 00 00\s+\{evex\}\s+ror\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 53 ff 08 f0 ff 7b\s+\{evex\}\s+rorx\s+r15,r15,0x7b
+\s*[a-f0-9]+:\s*62 d3 7f 08 f0 d7 7b\s+\{evex\}\s+rorx\s+edx,r15d,0x7b
+\s*[a-f0-9]+:\s*62 53 ff 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 53 7f 08 f0 bc 80 23 01 00 00 7b\s+\{evex\}\s+rorx\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ff 7b\s+\{evex\} sar\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ff 7b\s+\{evex\} sar\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ff 7b\s+\{evex\} sar\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 f8 7b\s+\{evex\} sar\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 bc 80 23 01 00 00 7b\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ff\s+\{evex\} sar\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ff\s+\{evex\} sar\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ff\s+\{evex\} sar\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ff\s+\{evex\} sar\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 f8\s+\{evex\} sar\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 bc 80 23 01 00 00\s+\{evex\} sar\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 bc 80 23 01 00 00\s+\{evex\} sar\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 52 86 08 f7 df\s+\{evex\} sarx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 86 08 f7 bc 80 23 01 00 00\s+\{evex\} sarx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 06 08 f7 d2\s+\{evex\} sarx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 06 08 f7 94 80 23 01 00 00\s+\{evex\} sarx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 df 7b\s+\{evex\} sbb\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 df 7b\s+\{evex\} sbb\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 df 7b\s+\{evex\} sbb\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 d8 7b\s+\{evex\} sbb\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 9c 80 23 01 00 00 7b\s+\{evex\} sbb\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 19 fa\s+\{evex\} sbb\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 19 f8\s+\{evex\} sbb\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 19 bc 80 23 01 00 00\s+\{evex\} sbb\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 18 c2\s+\{evex\} sbb\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 18 84 80 23 01 00 00\s+\{evex\} sbb\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 1b bc 80 23 01 00 00\s+\{evex\} sbb\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 1a 84 80 23 01 00 00\s+\{evex\} sbb\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 d9 e5\s+\{evex\} sha1msg1 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4 xmm12,xmm13,0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2 xmm12,xmm13
+\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2 xmm12,XMMWORD PTR\s+\[r8\+rax\*4\+0x123\],xmm0
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 e7 7b\s+\{evex\} shl\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 e7 7b\s+\{evex\} shl\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 e7 7b\s+\{evex\} shl\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e0 7b\s+\{evex\} shl\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 a4 80 23 01 00 00 7b\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 e7\s+\{evex\} shl\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 e7\s+\{evex\} shl\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 e7\s+\{evex\} shl\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 e7\s+\{evex\} shl\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e0\s+\{evex\} shl\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 a4 80 23 01 00 00\s+\{evex\} shl\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 a4 80 23 01 00 00\s+\{evex\} shl\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 54 fc 08 24 ff 7b\s+\{evex\} shld\s+r15,r15,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b
+\s*[a-f0-9]+:\s*62 74 7c 08 24 fa 7b\s+\{evex\} shld\s+edx,r15d,0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b
+\s*[a-f0-9]+:\s*62 74 7d 08 24 f8 7b\s+\{evex\} shld\s+ax,r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 7d 08 24 bc 80 23 01 00 00 7b\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 a5 ff\s+\{evex\} shld\s+r15,r15,cl
+\s*[a-f0-9]+:\s*62 54 fc 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl
+\s*[a-f0-9]+:\s*62 74 7c 08 a5 fa\s+\{evex\} shld\s+edx,r15d,cl
+\s*[a-f0-9]+:\s*62 54 7c 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl
+\s*[a-f0-9]+:\s*62 74 7d 08 a5 f8\s+\{evex\} shld\s+ax,r15w,cl
+\s*[a-f0-9]+:\s*62 54 7d 08 a5 bc 80 23 01 00 00\s+\{evex\} shld\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl
+\s*[a-f0-9]+:\s*62 52 85 08 f7 df\s+\{evex\} shlx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 85 08 f7 bc 80 23 01 00 00\s+\{evex\} shlx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 05 08 f7 d2\s+\{evex\} shlx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 05 08 f7 94 80 23 01 00 00\s+\{evex\} shlx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ef 7b\s+\{evex\} shr\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ef 7b\s+\{evex\} shr\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ef 7b\s+\{evex\} shr\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 e8 7b\s+\{evex\} shr\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c0 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 c1 ac 80 23 01 00 00 7b\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ef\s+\{evex\} shr\s+r15,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+r15d,1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+r15w,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+r8b,1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ef\s+\{evex\} shr\s+r15,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ef\s+\{evex\} shr\s+r15d,cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ef\s+\{evex\} shr\s+r15w,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 e8\s+\{evex\} shr\s+r8b,cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d2 ac 80 23 01 00 00\s+\{evex\} shr\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 08 d3 ac 80 23 01 00 00\s+\{evex\} shr\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 54 fc 08 2c ff 7b\s+\{evex\} shrd\s+r15,r15,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,0x7b
+\s*[a-f0-9]+:\s*62 74 7c 08 2c fa 7b\s+\{evex\} shrd\s+edx,r15d,0x7b
+\s*[a-f0-9]+:\s*62 54 7c 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,0x7b
+\s*[a-f0-9]+:\s*62 74 7d 08 2c f8 7b\s+\{evex\} shrd\s+ax,r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 7d 08 2c bc 80 23 01 00 00 7b\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 08 ad ff\s+\{evex\} shrd\s+r15,r15,cl
+\s*[a-f0-9]+:\s*62 54 fc 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15,cl
+\s*[a-f0-9]+:\s*62 74 7c 08 ad fa\s+\{evex\} shrd\s+edx,r15d,cl
+\s*[a-f0-9]+:\s*62 54 7c 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d,cl
+\s*[a-f0-9]+:\s*62 74 7d 08 ad f8\s+\{evex\} shrd\s+ax,r15w,cl
+\s*[a-f0-9]+:\s*62 54 7d 08 ad bc 80 23 01 00 00\s+\{evex\} shrd\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w,cl
+\s*[a-f0-9]+:\s*62 52 87 08 f7 df\s+\{evex\} shrx\s+r11,r15,r15
+\s*[a-f0-9]+:\s*62 52 87 08 f7 bc 80 23 01 00 00\s+\{evex\} shrx\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 72 07 08 f7 d2\s+\{evex\} shrx\s+r10d,edx,r15d
+\s*[a-f0-9]+:\s*62 d2 07 08 f7 94 80 23 01 00 00\s+\{evex\} shrx\s+edx,DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 ef 7b\s+\{evex\} sub\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 ef 7b\s+\{evex\} sub\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 ef 7b\s+\{evex\} sub\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 e8 7b\s+\{evex\} sub\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 ac 80 23 01 00 00 7b\s+\{evex\} sub\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 29 fa\s+\{evex\} sub\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 29 f8\s+\{evex\} sub\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 29 bc 80 23 01 00 00\s+\{evex\} sub\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 28 c2\s+\{evex\} sub\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 28 84 80 23 01 00 00\s+\{evex\} sub\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 2b bc 80 23 01 00 00\s+\{evex\} sub\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 2a 84 80 23 01 00 00\s+\{evex\} sub\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
+\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+edx,r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 f4 c7\s+\{evex\} tzcnt\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 fc 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 f4 bc 80 23 01 00 00\s+\{evex\} tzcnt\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 66 bc 80 23 01 00 00\s+\{evex\} wrssd\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fc 08 66 bc 80 23 01 00 00\s+\{evex\} wrssq\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 54 7d 08 65 bc 80 23 01 00 00\s+\{evex\} wrussd\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 54 fd 08 65 bc 80 23 01 00 00\s+\{evex\} wrussq\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 f7 7b\s+\{evex\} xor\s+r15,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 f7 7b\s+\{evex\} xor\s+r15d,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 f7 7b\s+\{evex\} xor\s+r15w,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 f0 7b\s+\{evex\} xor\s+r8b,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 80 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 08 83 b4 80 23 01 00 00 7b\s+\{evex\} xor\s+QWORD PTR\s+\[r8\+rax\*4\+0x123\],0x7b
+\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+QWORD PTR\s+\[r8\+rax\*4\+0x123\],r15
+\s*[a-f0-9]+:\s*62 74 7c 08 31 fa\s+\{evex\} xor\s+edx,r15d
+\s*[a-f0-9]+:\s*62 54 7c 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+DWORD PTR\s+\[r8\+rax\*4\+0x123\],r15d
+\s*[a-f0-9]+:\s*62 74 7d 08 31 f8\s+\{evex\} xor\s+ax,r15w
+\s*[a-f0-9]+:\s*62 54 7d 08 31 bc 80 23 01 00 00\s+\{evex\} xor\s+WORD PTR\s+\[r8\+rax\*4\+0x123\],r15w
+\s*[a-f0-9]+:\s*62 74 7c 08 30 c2\s+\{evex\} xor\s+dl,r8b
+\s*[a-f0-9]+:\s*62 54 7c 08 30 84 80 23 01 00 00\s+\{evex\} xor\s+BYTE PTR\s+\[r8\+rax\*4\+0x123\],r8b
+\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15,QWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15d,DWORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+r15w,WORD PTR\s+\[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+r8b,BYTE PTR\s+\[r8\+rax\*4\+0x123\]
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
index 00000000000..73f4aea747a
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.d
@@ -0,0 +1,1184 @@
+#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 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\} aesdec128kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\} aesdec256kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\} aesdecwide128kl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\} aesdecwide256kl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\} aesenc128kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\} aesenc256kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\} aesencwide128kl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\} aesencwide256kl\s+0x123\(%r8,%rax,4\)
+\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 d4 7e 08 da d7\s+\{evex\} encodekey128\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\} encodekey256\s+%r15d,%edx
+\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 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 60 ff\s+\{evex\} movbe\s+%r15,%r15
+\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 d4 7c 08 60 d7\s+\{evex\} movbe\s+%r15d,%edx
+\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 d4 7d 08 60 c7\s+\{evex\} movbe\s+%r15w,%ax
+\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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\} rcl\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\} rcl\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\} rcl\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\} rclb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\} rclw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\} rcll\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\} rclq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\} rcr\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\} rcr\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\} rcr\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\} rcrb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\} rol\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\} rol\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\} rol\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\} rolb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\} rolw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\} roll\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\} rolq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\} ror\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\} ror\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\} ror\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\} rorb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\} rorw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\} rorl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\} rorq\s+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 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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sarb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sarw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sarl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sarq\s+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 54 7c 08 d9 e5\s+\{evex\} sha1msg1\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4\s+\$0x7b,%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4\s+\$0x7b,0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2\s+%xmm0,0x123\(%r8,%rax,4\),%xmm12
+\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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shrb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shrw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shrl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shrq\s+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\)
+\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r8b
+\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 54 7e 08 dd a4 80 23 01 00 00\s+\{evex\} aesdec128kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7e 08 df a4 80 23 01 00 00\s+\{evex\} aesdec256kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 8c 80 23 01 00 00\s+\{evex\} aesdecwide128kl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 9c 80 23 01 00 00\s+\{evex\} aesdecwide256kl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 7e 08 dc a4 80 23 01 00 00\s+\{evex\} aesenc128kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7e 08 de a4 80 23 01 00 00\s+\{evex\} aesenc256kl\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 84 80 23 01 00 00\s+\{evex\} aesencwide128kl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7e 08 d8 94 80 23 01 00 00\s+\{evex\} aesencwide256kl\s+0x123\(%r8,%rax,4\)
+\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 d4 7e 08 da d7\s+\{evex\} encodekey128\s+%r15d,%edx
+\s*[a-f0-9]+:\s*62 d4 7e 08 db d7\s+\{evex\} encodekey256\s+%r15d,%edx
+\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 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 60 ff\s+\{evex\} movbe\s+%r15,%r15
+\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 d4 7c 08 60 d7\s+\{evex\} movbe\s+%r15d,%edx
+\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 d4 7d 08 60 c7\s+\{evex\} movbe\s+%r15w,%ax
+\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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 d7\s+\{evex\} rcl\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 d7\s+\{evex\} rcl\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d0\s+\{evex\} rcl\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 94 80 23 01 00 00\s+\{evex\} rclb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 94 80 23 01 00 00\s+\{evex\} rclw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 94 80 23 01 00 00\s+\{evex\} rcll\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 94 80 23 01 00 00\s+\{evex\} rclq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 df\s+\{evex\} rcr\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 df\s+\{evex\} rcr\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 d8\s+\{evex\} rcr\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 9c 80 23 01 00 00\s+\{evex\} rcrb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 9c 80 23 01 00 00\s+\{evex\} rcrq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 c7\s+\{evex\} rol\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 c7\s+\{evex\} rol\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c0\s+\{evex\} rol\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 84 80 23 01 00 00\s+\{evex\} rolb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 84 80 23 01 00 00\s+\{evex\} rolw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 84 80 23 01 00 00\s+\{evex\} roll\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 84 80 23 01 00 00\s+\{evex\} rolq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 cf\s+\{evex\} ror\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 cf\s+\{evex\} ror\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 c8\s+\{evex\} ror\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 8c 80 23 01 00 00\s+\{evex\} rorb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 8c 80 23 01 00 00\s+\{evex\} rorw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 8c 80 23 01 00 00\s+\{evex\} rorl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 8c 80 23 01 00 00\s+\{evex\} rorq\s+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 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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ff\s+\{evex\} sar\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ff\s+\{evex\} sar\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 f8\s+\{evex\} sar\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 bc 80 23 01 00 00\s+\{evex\} sarb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 bc 80 23 01 00 00\s+\{evex\} sarw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 bc 80 23 01 00 00\s+\{evex\} sarl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 bc 80 23 01 00 00\s+\{evex\} sarq\s+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 54 7c 08 d9 e5\s+\{evex\} sha1msg1\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d9 a4 80 23 01 00 00\s+\{evex\} sha1msg1\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 da e5\s+\{evex\} sha1msg2\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 da a4 80 23 01 00 00\s+\{evex\} sha1msg2\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 e5\s+\{evex\} sha1nexte\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d8 a4 80 23 01 00 00\s+\{evex\} sha1nexte\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 e5 7b\s+\{evex\} sha1rnds4\s+\$0x7b,%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 d4 a4 80 23 01 00 00 7b\s+\{evex\} sha1rnds4\s+\$0x7b,0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dc e5\s+\{evex\} sha256msg1\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dc a4 80 23 01 00 00\s+\{evex\} sha256msg1\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dd e5\s+\{evex\} sha256msg2\s+%xmm13,%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 dd a4 80 23 01 00 00\s+\{evex\} sha256msg2\s+0x123\(%r8,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*62 54 7c 08 db a4 80 23 01 00 00\s+\{evex\} sha256rnds2\s+%xmm0,0x123\(%r8,%rax,4\),%xmm12
+\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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 e7\s+\{evex\} shl\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 e7\s+\{evex\} shl\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e0\s+\{evex\} shl\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 a4 80 23 01 00 00\s+\{evex\} shlb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 a4 80 23 01 00 00\s+\{evex\} shlw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 a4 80 23 01 00 00\s+\{evex\} shll\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 a4 80 23 01 00 00\s+\{evex\} shlq\s+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+%r15
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ef\s+\{evex\} shr\s+%r15d
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ef\s+\{evex\} shr\s+%r15w
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 e8\s+\{evex\} shr\s+%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 08 d0 ac 80 23 01 00 00\s+\{evex\} shrb\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 08 d1 ac 80 23 01 00 00\s+\{evex\} shrw\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 08 d1 ac 80 23 01 00 00\s+\{evex\} shrl\s+0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 08 d1 ac 80 23 01 00 00\s+\{evex\} shrq\s+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\)
+\s*[a-f0-9]+:\s*62 54 fc 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 54 7c 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15d
+\s*[a-f0-9]+:\s*62 54 7d 08 33 bc 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r15w
+\s*[a-f0-9]+:\s*62 54 7c 08 32 84 80 23 01 00 00\s+\{evex\} xor\s+0x123\(%r8,%rax,4\),%r8b
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
index 00000000000..b7e43b6aa1c
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s
@@ -0,0 +1,1180 @@
+# Check 64bit APX_F instructions with evex pseudo prefix
+
+	.text
+_start:
+	{evex}	aadd	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	aadd	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	aand	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	aand	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	addb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	addw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	addl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	addq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdec128kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdec256kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdecwide128kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdecwide256kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesenc128kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesenc256kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesencwide128kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesencwide256kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	andb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	andw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	andl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	andq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	0x123(%r8,%rax,4),%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	0x123(%r8,%rax,4),%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	aor	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	aor	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	axor	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	axor	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	%r15,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	%r15d,0x123(%r8,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	%r15,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	%r15d,0x123(%r8,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnoxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnoxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnpxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnpxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnsxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnsxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnzxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnzxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpoxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpoxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmppxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmppxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpsxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpsxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpzxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpzxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	decb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	decw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	decl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	decq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	divb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	divw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	divl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	divq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	encodekey128	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	encodekey256	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmd	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmd	0x123(%r8d,%eax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmds	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmds	0x123(%r8d,%eax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	idivb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	idivw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	idivl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	idivq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	imulb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	imulw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	imull	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	imulq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	incb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	incw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	incl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	incq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	invept	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	invpcid	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	invvpid	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	%k5,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	%k5,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	%r15d,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	0x123(%r8,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	%k5,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	%k5,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	%r15d,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	0x123(%r8,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	%k5,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	%k5,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	%r15,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	0x123(%r8,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	%k5,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	%k5,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	%r15d,%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	0x123(%r8,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdir64b	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdir64b	0x123(%r8d,%eax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdiri	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdiri	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	mull	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	0x123(%r8,%rax,4),%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	0x123(%r8,%rax,4),%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	negb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	negw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	negl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	negq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	notb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	notw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	notl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	notq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	orb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	orw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	orl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	orq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	0x123(%r8,%rax,4),%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	0x123(%r8,%rax,4),%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	0x123(%r8,%rax,4),%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	0x123(%r8,%rax,4),%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcll	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$1,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$1,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$1,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	$1,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclb	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclw	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcll	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclq	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	%cl,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	%cl,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	%cl,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	%cl,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclb	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclw	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcll	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rclq	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$1,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$1,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$1,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	$1,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrb	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrw	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrl	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrq	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	%cl,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	%cl,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	%cl,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	%cl,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrb	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrw	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrl	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcrq	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	roll	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$1,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$1,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$1,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	$1,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolb	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolw	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	roll	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolq	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	%cl,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	%cl,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	%cl,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	%cl,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolb	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolw	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	roll	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rolq	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$1,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$1,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$1,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	$1,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorb	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorw	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorl	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorq	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	%cl,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	%cl,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	%cl,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	%cl,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorb	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorw	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorl	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorq	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	$0x7b,%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	$0x7b,%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	$0x7b,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	$0x7b,0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$1,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$1,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$1,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	$1,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarb	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarw	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarl	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarq	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	%cl,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	%cl,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	%cl,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	%cl,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarb	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarw	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarl	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarq	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	%r15,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	%r15d,0x123(%r8,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbbb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbbw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbbl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbbq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg1	%xmm13,%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg1	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg2	%xmm13,%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg2	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1nexte	%xmm13,%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1nexte	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1rnds4	$0x7b,%xmm13,%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1rnds4	$0x7b,0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg1	%xmm13,%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg1	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg2	%xmm13,%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg2	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256rnds2	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shll	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$1,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$1,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$1,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	$1,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlb	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlw	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shll	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlq	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	%cl,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	%cl,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	%cl,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	%cl,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlb	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlw	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shll	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlq	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	$0x7b,%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	$0x7b,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	$0x7b,%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	$0x7b,%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	$0x7b,%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	$0x7b,%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	%cl,%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	%cl,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	%cl,%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	%cl,%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	%cl,%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	%cl,%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	%r15,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	%r15d,0x123(%r8,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$1,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$1,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$1,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	$1,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrb	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrw	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrl	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrq	$1,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	%cl,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	%cl,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	%cl,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	%cl,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrb	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrw	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrl	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrq	%cl,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	$0x7b,%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	$0x7b,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	$0x7b,%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	$0x7b,%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	$0x7b,%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	$0x7b,%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	%cl,%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	%cl,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	%cl,%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	%cl,%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	%cl,%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	%cl,%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	%r15,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	%r15d,0x123(%r8,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	subb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	subw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	subl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	subq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrssd	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrssq	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrussd	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrussq	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xorb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xorw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xorl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xorq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r15,%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
+
+.intel_syntax noprefix
+	{evex}	aadd	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	aadd	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	aand	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	aand	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	dl,r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	BYTE PTR [r8+rax*4+0x123],r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	adc	r8b,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	adcx	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	dl,r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	BYTE PTR [r8+rax*4+0x123],r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	add	r8b,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	adox	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdec128kl	xmm12,[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdec256kl	xmm12,[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdecwide128kl	[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesdecwide256kl	[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesenc128kl	xmm12,[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesenc256kl	xmm12,[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesencwide128kl	[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aesencwide256kl	[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	dl,r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	BYTE PTR [r8+rax*4+0x123],r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	and	r8b,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	r15,r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	andn	edx,r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	aor	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	aor	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	axor	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	axor	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	r15,QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	bextr	edx,DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsi	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsmsk	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	blsr	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	r15,QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	bzhi	edx,DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbexadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbexadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpbxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplexadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplexadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmplxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbexadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbexadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnbxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlexadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlexadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnlxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnoxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnoxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnpxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnpxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnsxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnsxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnzxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpnzxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpoxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpoxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmppxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmppxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpsxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpsxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpzxadd	QWORD PTR [r8+rax*4+0x123],r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	cmpzxadd	DWORD PTR [r8+rax*4+0x123],edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	dec	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	div	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	encodekey128	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	encodekey256	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmd	r15,[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmd	r15d,[r8d+eax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmds	r15,[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	enqcmds	r15d,[r8d+eax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	idiv	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	imul	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	inc	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	invept	r15,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	invpcid	r15,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	invvpid	r15,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	k5,k3	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	r15d,k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	BYTE PTR [r8+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	k5,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovb	k5,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	k5,k3	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	r15d,k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	DWORD PTR [r8+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	k5,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovd	k5,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	k5,k3	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	r15,k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	QWORD PTR [r8+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	k5,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovq	k5,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	k5,k3	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	r15d,k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	WORD PTR [r8+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	k5,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	kmovw	k5,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	lzcnt	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	movbe	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdir64b	r15,[r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdir64b	r15d,[r8d+eax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdiri	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	movdiri	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	mul	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	r15,r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	mulx	edx,r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	neg	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	not	QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	dl,r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	BYTE PTR [r8+rax*4+0x123],r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	or	r8b,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	r15,r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	pdep	edx,r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	r15,r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	pext	edx,r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	popcnt	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15d,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15w,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r8b,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	BYTE PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	WORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	DWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	QWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	r8b,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	BYTE PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	WORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	DWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcl	QWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15d,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15w,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r8b,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	BYTE PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	WORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	DWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	QWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	r8b,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	BYTE PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	WORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	DWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rcr	QWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15d,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15w,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r8b,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	BYTE PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	WORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	DWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	QWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	r8b,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	BYTE PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	WORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	DWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rol	QWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15d,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15w,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r8b,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	BYTE PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	WORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	DWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	QWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	r8b,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	BYTE PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	WORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	DWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	ror	QWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	r15,r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	edx,r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	r15,QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	rorx	r15d,DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15d,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15w,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r8b,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	BYTE PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	WORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	DWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	QWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	r8b,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	BYTE PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	WORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	DWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sar	QWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	r15,QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sarx	edx,DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	dl,r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	BYTE PTR [r8+rax*4+0x123],r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sbb	r8b,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg1	xmm12,xmm13	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg1	xmm12,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg2	xmm12,xmm13	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1msg2	xmm12,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1nexte	xmm12,xmm13	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1nexte	xmm12,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1rnds4	xmm12,xmm13,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha1rnds4	xmm12,XMMWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg1	xmm12,xmm13	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg1	xmm12,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg2	xmm12,xmm13	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256msg2	xmm12,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sha256rnds2	xmm12,XMMWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15d,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15w,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r8b,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	BYTE PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	WORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	DWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	QWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	r8b,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	BYTE PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	WORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	DWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shl	QWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	r15,r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	QWORD PTR [r8+rax*4+0x123],r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	edx,r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	DWORD PTR [r8+rax*4+0x123],r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	ax,r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	WORD PTR [r8+rax*4+0x123],r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	r15,r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	QWORD PTR [r8+rax*4+0x123],r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	edx,r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	DWORD PTR [r8+rax*4+0x123],r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	ax,r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shld	WORD PTR [r8+rax*4+0x123],r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	r15,QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shlx	edx,DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15d,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15w,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r8b,1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	BYTE PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	WORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	DWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	QWORD PTR [r8+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	r8b,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	BYTE PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	WORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	DWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shr	QWORD PTR [r8+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	r15,r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	QWORD PTR [r8+rax*4+0x123],r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	edx,r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	DWORD PTR [r8+rax*4+0x123],r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	ax,r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	WORD PTR [r8+rax*4+0x123],r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	r15,r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	QWORD PTR [r8+rax*4+0x123],r15,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	edx,r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	DWORD PTR [r8+rax*4+0x123],r15d,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	ax,r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrd	WORD PTR [r8+rax*4+0x123],r15w,cl	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	r11,r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	r15,QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	r10d,edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	shrx	edx,DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	dl,r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	BYTE PTR [r8+rax*4+0x123],r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	sub	r8b,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	tzcnt	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrssd	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrssq	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrussd	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	wrussq	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r15,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r15d,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r15w,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r8b,0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	BYTE PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	WORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	DWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	QWORD PTR [r8+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r15,r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	QWORD PTR [r8+rax*4+0x123],r15	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	edx,r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	DWORD PTR [r8+rax*4+0x123],r15d	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	ax,r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	WORD PTR [r8+rax*4+0x123],r15w	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	dl,r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	BYTE PTR [r8+rax*4+0x123],r8b	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r15,QWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r15d,DWORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r15w,WORD PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	{evex}	xor	r8b,BYTE PTR [r8+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index cf64b1f0000..086dc47b5ba 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -378,6 +378,8 @@ run_dump_test "x86-64-apx-jmpabs"
 run_dump_test "x86-64-apx-jmpabs-intel"
 run_dump_test "x86-64-apx-jmpabs-inval"
 run_list_test "x86-64-apx-mov-inval"
+run_dump_test "x86-64-apx_f-evex"
+run_dump_test "x86-64-apx_f-evex-intel"
 run_dump_test "x86-64-avx512f-rcigrz-intel"
 run_dump_test "x86-64-avx512f-rcigrz"
 run_dump_test "x86-64-clwb"
diff --git a/opcodes/i386-dis-evex-len.h b/opcodes/i386-dis-evex-len.h
index 060ba3afb6c..a7bd77c5753 100644
--- a/opcodes/i386-dis-evex-len.h
+++ b/opcodes/i386-dis-evex-len.h
@@ -64,7 +64,7 @@ static const struct dis386 evex_len_table[][3] = {
 
   /* EVEX_LEN_0F38F2 */
   {
-    { "%XNandnS",		{ Gdq, VexGdq, Edq }, 0 },
+    { "%XE%XNandnS",		{ Gdq, VexGdq, Edq }, 0 },
   },
 
   /* EVEX_LEN_0F38F3 */
diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h
index ad7b0514720..950f674f4f7 100644
--- a/opcodes/i386-dis-evex-mod.h
+++ b/opcodes/i386-dis-evex-mod.h
@@ -1,11 +1,11 @@
 /* Nothing at present.  */
   /* MOD_EVEX_MAP4_65 */
   {
-    { "wrussK",		{ M, Gdq }, PREFIX_DATA },
+    { "%XEwrussK",		{ M, Gdq }, PREFIX_DATA },
   },
   /* MOD_EVEX_MAP4_66_PREFIX_0 */
   {
-    { "wrssK",		{ M, Gdq }, 0 },
+    { "%XEwrssK",		{ M, Gdq }, 0 },
   },
   /* MOD_EVEX_MAP4_8F_X86_64_L_0 */
   {
@@ -15,44 +15,44 @@
   /* MOD_EVEX_MAP4_DA_PREFIX_1 */
   {
     { Bad_Opcode },
-    { "encodekey128", { Gd, Ed }, 0 },
+    { "%XEencodekey128", { Gd, Ed }, 0 },
   },
   /* MOD_EVEX_MAP4_DB_PREFIX_1 */
   {
     { Bad_Opcode },
-    { "encodekey256", { Gd, Ed }, 0 },
+    { "%XEencodekey256", { Gd, Ed }, 0 },
   },
   /* MOD_EVEX_MAP4_DC_PREFIX_1 */
   {
-    { "aesenc128kl",    { XM, M }, 0 },
+    { "%XEaesenc128kl",    { XM, M }, 0 },
   },
   /* MOD_EVEX_MAP4_DD_PREFIX_1 */
   {
-    { "aesdec128kl",    { XM, M }, 0 },
+    { "%XEaesdec128kl",    { XM, M }, 0 },
   },
   /* MOD_EVEX_MAP4_DE_PREFIX_1 */
   {
-    { "aesenc256kl",    { XM, M }, 0 },
+    { "%XEaesenc256kl",    { XM, M }, 0 },
   },
   /* MOD_EVEX_MAP4_DF_PREFIX_1 */
   {
-    { "aesdec256kl",    { XM, M }, 0 },
+    { "%XEaesdec256kl",    { XM, M }, 0 },
   },
   /* MOD_EVEX_MAP4_F8_PREFIX_1 */
   {
-    { "enqcmds",	{ Gva, M },  0 },
+    { "%XEenqcmds",	{ Gva, M },  0 },
   },
   /* MOD_EVEX_MAP4_F8_PREFIX_2 */
   {
-    { "movdir64b",	{ Gva, M }, 0 },
+    { "%XEmovdir64b",	{ Gva, M }, 0 },
   },
   /* MOD_EVEX_MAP4_F8_PREFIX_3 */
   {
-    { "enqcmd",		{ Gva, M }, 0 },
+    { "%XEenqcmd",		{ Gva, M }, 0 },
   },
   /* MOD_EVEX_MAP4_F9 */
   {
-    { "movdiri",	{ Edq, Gdq }, 0 },
+    { "%XEmovdiri",	{ Edq, Gdq }, 0 },
   },
   /* MOD_EVEX_MAP4_FF_R_6_X86_64_L_0 */
   {
diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h
index 5b2dff379bd..f6ce9e053f5 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -340,21 +340,21 @@
   },
   /* PREFIX_EVEX_MAP4_60 */
   {
-    { "movbeS",	{ Gv, Ev }, 0 },
+    { "%XEmovbeS",	{ Gv, Ev }, 0 },
     { Bad_Opcode },
-    { "movbeS",	{ Gv, Ev }, 0 },
+    { "%XEmovbeS",	{ Gv, Ev }, 0 },
   },
   /* PREFIX_EVEX_MAP4_61 */
   {
-    { "movbeS",	{ Ev, Gv }, 0 },
+    { "%XEmovbeS",	{ Ev, Gv }, 0 },
     { Bad_Opcode },
-    { "movbeS",	{ Ev, Gv }, 0 },
+    { "%XEmovbeS",	{ Ev, Gv }, 0 },
   },
   /* PREFIX_EVEX_MAP4_66 */
   {
     { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
-    { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
-    { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },
+    { "%XEadoxS",	{ VexGdq, Gdq, Edq }, 0 },
+    { "%XEadcxS",	{ VexGdq, Gdq, Edq }, 0 },
   },
   /* PREFIX_EVEX_MAP4_8F_X86_64_L_0_M_1_R_0 */
   {
@@ -362,27 +362,27 @@
   },
   /* PREFIX_EVEX_MAP4_D8 */
   {
-    { "sha1nexte", { XM, EXxmm }, 0 },
+    { "%XEsha1nexte", { XM, EXxmm }, 0 },
     { REG_TABLE (REG_EVEX_MAP4_D8_PREFIX_1) },
   },
   /* PREFIX_EVEX_MAP4_DA */
   {
-    { "sha1msg2", { XM, EXxmm }, 0 },
+    { "%XEsha1msg2", { XM, EXxmm }, 0 },
     { MOD_TABLE (MOD_EVEX_MAP4_DA_PREFIX_1) },
   },
   /* PREFIX_EVEX_MAP4_DB */
   {
-    { "sha256rnds2", { XM, EXxmm, XMM0 }, 0 },
+    { "%XEsha256rnds2", { XM, EXxmm, XMM0 }, 0 },
     { MOD_TABLE (MOD_EVEX_MAP4_DB_PREFIX_1) },
   },
   /* PREFIX_EVEX_MAP4_DC */
   {
-    { "sha256msg1", { XM, EXxmm }, 0 },
+    { "%XEsha256msg1", { XM, EXxmm }, 0 },
     { MOD_TABLE (MOD_EVEX_MAP4_DC_PREFIX_1) },
   },
   /* PREFIX_EVEX_MAP4_DD */
   {
-    { "sha256msg2", { XM, EXxmm }, 0 },
+    { "%XEsha256msg2", { XM, EXxmm }, 0 },
     { MOD_TABLE (MOD_EVEX_MAP4_DD_PREFIX_1) },
   },
   /* PREFIX_EVEX_MAP4_DE */
@@ -398,18 +398,18 @@
   /* PREFIX_EVEX_MAP4_F0 */
   {
     { "crc32A",	{ Gdq, Eb }, 0 },
-    { "invept",	{ Gm, Mo }, 0 },
+    { "%XEinvept",	{ Gm, Mo }, 0 },
   },
   /* PREFIX_EVEX_MAP4_F1 */
   {
     { "crc32Q",	{ Gdq, Ev }, 0 },
-    { "invvpid", { Gm, Mo }, 0 },
+    { "%XEinvvpid", { Gm, Mo }, 0 },
     { "crc32Q",	{ Gdq, Ev }, 0 },
   },
   /* PREFIX_EVEX_MAP4_F2 */
   {
     { Bad_Opcode },
-    { "invpcid", { Gm, M }, 0 },
+    { "%XEinvpcid", { Gm, M }, 0 },
   },
   /* PREFIX_EVEX_MAP4_F8 */
   {
@@ -420,10 +420,10 @@
   },
   /* PREFIX_EVEX_MAP4_FC */
   {
-    { "aadd",	{ Mdq, Gdq }, 0 },
-    { "axor",	{ Mdq, Gdq }, 0 },
-    { "aand",	{ Mdq, Gdq }, 0 },
-    { "aor",	{ Mdq, Gdq }, 0 },
+    { "%XEaadd",	{ Mdq, Gdq }, 0 },
+    { "%XEaxor",	{ Mdq, Gdq }, 0 },
+    { "%XEaand",	{ Mdq, Gdq }, 0 },
+    { "%XEaor",		{ Mdq, Gdq }, 0 },
   },
   /* PREFIX_EVEX_MAP4_FF_R_6_X86_64_L_0_M_1 */
   {
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index 109b43334ad..9ac175d946b 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -52,16 +52,16 @@
   /* REG_EVEX_0F38F3_L_0 */
   {
     { Bad_Opcode },
-    { "%XNblsrS",		{ VexGdq, Edq }, 0 },
-    { "%XNblsmskS",	{ VexGdq, Edq }, 0 },
-    { "%XNblsiS",		{ VexGdq, Edq }, 0 },
+    { "%XE%XNblsrS",		{ VexGdq, Edq }, 0 },
+    { "%XE%XNblsmskS",	{ VexGdq, Edq }, 0 },
+    { "%XE%XNblsiS",		{ VexGdq, Edq }, 0 },
   },
   /* REG_EVEX_MAP4_80 */
   {
     { "%XNaddA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNorA",	{ VexGb, Eb, Ib }, 0 },
-    { "adcA",	{ VexGb, Eb, Ib }, 0 },
-    { "sbbA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XEadcA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XEsbbA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNandA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNsubA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNxorA",	{VexGb, Eb, Ib }, 0 },
@@ -71,8 +71,8 @@
   {
     { "%XNaddQ",	{ VexGv, Ev, Iv }, 0 },
     { "%XNorQ",	{ VexGv, Ev, Iv }, 0 },
-    { "adcQ",	{ VexGv, Ev, Iv }, 0 },
-    { "sbbQ",	{ VexGv, Ev, Iv }, 0 },
+    { "%XEadcQ",	{ VexGv, Ev, Iv }, 0 },
+    { "%XEsbbQ",	{ VexGv, Ev, Iv }, 0 },
     { "%XNandQ",	{ VexGv, Ev, Iv }, 0 },
     { "%XNsubQ",	{ VexGv, Ev, Iv }, 0 },
     { "%XNxorQ",	{ VexGv, Ev, Iv }, 0 },
@@ -82,8 +82,8 @@
   {
     { "%XNaddQ",	{ VexGv, Ev, sIb }, 0 },
     { "%XNorQ",	{ VexGv, Ev, sIb }, 0 },
-    { "adcQ",	{ VexGv, Ev, sIb }, 0 },
-    { "sbbQ",	{ VexGv, Ev, sIb }, 0 },
+    { "%XEadcQ",	{ VexGv, Ev, sIb }, 0 },
+    { "%XEsbbQ",	{ VexGv, Ev, sIb }, 0 },
     { "%XNandQ",	{ VexGv, Ev, sIb }, 0 },
     { "%XNsubQ",	{ VexGv, Ev, sIb }, 0 },
     { "%XNxorQ",	{ VexGv, Ev, sIb }, 0 },
@@ -97,8 +97,8 @@
   {
     { "%XNrolA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNrorA",	{ VexGb, Eb, Ib }, 0 },
-    { "rclA",	{ VexGb, Eb, Ib }, 0 },
-    { "rcrA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XErclA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XErcrA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNshlA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNshrA",	{ VexGb, Eb, Ib }, 0 },
     { "%XNshlA",	{ VexGb, Eb, Ib }, 0 },
@@ -108,8 +108,8 @@
   {
     { "%XNrolQ",	{ VexGv, Ev, Ib }, 0 },
     { "%XNrorQ",	{ VexGv, Ev, Ib }, 0 },
-    { "rclQ",	{ VexGv, Ev, Ib }, 0 },
-    { "rcrQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XErclQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XErcrQ",	{ VexGv, Ev, Ib }, 0 },
     { "%XNshlQ",	{ VexGv, Ev, Ib }, 0 },
     { "%XNshrQ",	{ VexGv, Ev, Ib }, 0 },
     { "%XNshlQ",	{ VexGv, Ev, Ib }, 0 },
@@ -119,8 +119,8 @@
   {
     { "%XNrolA",	{ VexGb, Eb, I1 }, 0 },
     { "%XNrorA",	{ VexGb, Eb, I1 }, 0 },
-    { "rclA",	{ VexGb, Eb, I1 }, 0 },
-    { "rcrA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XErclA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XErcrA",	{ VexGb, Eb, I1 }, 0 },
     { "%XNshlA",	{ VexGb, Eb, I1 }, 0 },
     { "%XNshrA",	{ VexGb, Eb, I1 }, 0 },
     { "%XNshlA",	{ VexGb, Eb, I1 }, 0 },
@@ -130,8 +130,8 @@
   {
     { "%XNrolQ",	{ VexGv, Ev, I1 }, 0 },
     { "%XNrorQ",	{ VexGv, Ev, I1 }, 0 },
-    { "rclQ",	{ VexGv, Ev, I1 }, 0 },
-    { "rcrQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XErclQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XErcrQ",	{ VexGv, Ev, I1 }, 0 },
     { "%XNshlQ",	{ VexGv, Ev, I1 }, 0 },
     { "%XNshrQ",	{ VexGv, Ev, I1 }, 0 },
     { "%XNshlQ",	{ VexGv, Ev, I1 }, 0 },
@@ -141,8 +141,8 @@
   {
     { "%XNrolA",	{ VexGb, Eb, CL }, 0 },
     { "%XNrorA",	{ VexGb, Eb, CL }, 0 },
-    { "rclA",	{ VexGb, Eb, CL }, 0 },
-    { "rcrA",	{ VexGb, Eb, CL }, 0 },
+    { "%XErclA",	{ VexGb, Eb, CL }, 0 },
+    { "%XErcrA",	{ VexGb, Eb, CL }, 0 },
     { "%XNshlA",	{ VexGb, Eb, CL }, 0 },
     { "%XNshrA",	{ VexGb, Eb, CL }, 0 },
     { "%XNshlA",	{ VexGb, Eb, CL }, 0 },
@@ -152,8 +152,8 @@
   {
     { "%XNrolQ",	{ VexGv, Ev, CL }, 0 },
     { "%XNrorQ",	{ VexGv, Ev, CL }, 0 },
-    { "rclQ",	{ VexGv, Ev, CL }, 0 },
-    { "rcrQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XErclQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XErcrQ",	{ VexGv, Ev, CL }, 0 },
     { "%XNshlQ",	{ VexGv, Ev, CL }, 0 },
     { "%XNshrQ",	{ VexGv, Ev, CL }, 0 },
     { "%XNshlQ",	{ VexGv, Ev, CL }, 0 },
@@ -161,10 +161,10 @@
   },
   /* REG_EVEX_MAP4_D8_PREFIX_1 */
   {
-    { "aesencwide128kl",	{ M }, 0 },
-    { "aesdecwide128kl",	{ M }, 0 },
-    { "aesencwide256kl",	{ M }, 0 },
-    { "aesdecwide256kl",	{ M }, 0 },
+    { "%XEaesencwide128kl",	{ M }, 0 },
+    { "%XEaesdecwide128kl",	{ M }, 0 },
+    { "%XEaesencwide256kl",	{ M }, 0 },
+    { "%XEaesdecwide256kl",	{ M }, 0 },
   },
   /* REG_EVEX_MAP4_F6 */
   {
diff --git a/opcodes/i386-dis-evex-x86.h b/opcodes/i386-dis-evex-x86.h
index b603f1af882..255ff7bb89c 100644
--- a/opcodes/i386-dis-evex-x86.h
+++ b/opcodes/i386-dis-evex-x86.h
@@ -31,82 +31,82 @@
   /* X86_64_EVEX_0F38E0 */
   {
     { Bad_Opcode },
-    { "cmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E1 */
   {
     { Bad_Opcode },
-    { "cmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E2 */
   {
     { Bad_Opcode },
-    { "cmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E3 */
   {
     { Bad_Opcode },
-    { "cmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E4 */
   {
     { Bad_Opcode },
-    { "cmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E5 */
   {
     { Bad_Opcode },
-    { "cmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E6 */
   {
     { Bad_Opcode },
-    { "cmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E7 */
   {
     { Bad_Opcode },
-    { "cmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E8 */
   {
     { Bad_Opcode },
-    { "cmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38E9 */
   {
     { Bad_Opcode },
-    { "cmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38EA */
   {
     { Bad_Opcode },
-    { "cmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38EB */
   {
     { Bad_Opcode },
-    { "cmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38EC */
   {
     { Bad_Opcode },
-    { "cmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38ED */
   {
     { Bad_Opcode },
-    { "cmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38EE */
   {
     { Bad_Opcode },
-    { "cmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38EF */
   {
     { Bad_Opcode },
-    { "cmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+    { "%XEcmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
   /* X86_64_EVEX_0F38F2 */
   {
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 0f196155054..4d6adc7585d 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -893,19 +893,19 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 10 */
-    { "adcB",		{ VexGb, Eb, Gb }, 0 },
-    { "adcS",		{ VexGv, Ev, Gv }, 0 },
-    { "adcB",		{ VexGb, Gb, EbS }, 0 },
-    { "adcS",		{ VexGv, Gv, EvS }, 0 },
+    { "%XEadcB",		{ VexGb, Eb, Gb }, 0 },
+    { "%XEadcS",		{ VexGv, Ev, Gv }, 0 },
+    { "%XEadcB",		{ VexGb, Gb, EbS }, 0 },
+    { "%XEadcS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 18 */
-    { "sbbB",		{ VexGb, Eb, Gb }, 0 },
-    { "sbbS",		{ VexGv, Ev, Gv }, 0 },
-    { "sbbB",		{ VexGb, Gb, EbS }, 0 },
-    { "sbbS",		{ VexGv, Gv, EvS }, 0 },
+    { "%XEsbbB",		{ VexGb, Eb, Gb }, 0 },
+    { "%XEsbbS",		{ VexGv, Ev, Gv }, 0 },
+    { "%XEsbbB",		{ VexGb, Gb, EbS }, 0 },
+    { "%XEsbbS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1113,13 +1113,13 @@ static const struct dis386 evex_table[][256] = {
     { REG_TABLE (REG_EVEX_MAP4_D1) },
     { REG_TABLE (REG_EVEX_MAP4_D2) },
     { REG_TABLE (REG_EVEX_MAP4_D3) },
-    { "sha1rnds4", { XM, EXxmm, Ib }, 0 },
+    { "%XEsha1rnds4", { XM, EXxmm, Ib }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* D8 */
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_D8) },
-    { "sha1msg1", { XM, EXxmm }, 0 },
+    { "%XEsha1msg1", { XM, EXxmm }, 0 },
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_DA) },
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_DB) },
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_DC) },
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index e2e903afde4..9d2c00cca1d 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -3910,38 +3910,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 */
@@ -3949,15 +3949,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 */
@@ -3965,7 +3965,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 */
@@ -4126,10 +4126,10 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_VEX_0F38F5_L_0 */
   {
-    { "%XNbzhiS",	{ Gdq, Edq, VexGdq }, 0 },
-    { "pextS",		{ Gdq, VexGdq, Edq }, 0 },
+    { "%XE%XNbzhiS",	{ Gdq, Edq, VexGdq }, 0 },
+    { "%XEpextS",		{ Gdq, VexGdq, Edq }, 0 },
     { Bad_Opcode },
-    { "pdepS",		{ Gdq, VexGdq, Edq }, 0 },
+    { "%XEpdepS",		{ Gdq, VexGdq, Edq }, 0 },
   },
 
   /* PREFIX_VEX_0F38F6_L_0 */
@@ -4137,15 +4137,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 */
   {
-    { "%XNbextrS",	{ Gdq, Edq, VexGdq }, 0 },
-    { "sarxS",		{ Gdq, Edq, VexGdq }, 0 },
-    { "shlxS",		{ Gdq, Edq, VexGdq }, 0 },
-    { "shrxS",		{ Gdq, Edq, VexGdq }, 0 },
+    { "%XE%XNbextrS",	{ Gdq, Edq, VexGdq }, 0 },
+    { "%XEsarxS",		{ Gdq, Edq, VexGdq }, 0 },
+    { "%XEshlxS",		{ Gdq, Edq, VexGdq }, 0 },
+    { "%XEshrxS",		{ Gdq, Edq, VexGdq }, 0 },
   },
 
   /* PREFIX_VEX_0F3AF0_L_0 */
@@ -4153,7 +4153,7 @@ static const struct dis386 prefix_table[][4] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "rorxS",		{ Gdq, Edq, Ib }, 0 },
+    { "%XErorxS",		{ Gdq, Edq, Ib }, 0 },
   },
 
 #include "i386-dis-evex-prefix.h"
@@ -10465,7 +10465,10 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
 		{
 		case 'X':
 		  if (!ins->vex.evex || ins->vex.b || ins->vex.ll >= 2
+		      || ins->vex.nf
 		      || (ins->rex2 & REX_R)
+		      || (ins->rex2 & REX_B)
+		      || (ins->rex2 & REX_X)
 		      || (ins->modrm.mod == 3 && (ins->rex & REX_X))
 		      || !ins->vex.v || ins->vex.mask_register_specifier)
 		    break;
-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 2/6] Disable pseudo prefix {rex2} for illegal instructions.
  2023-09-21 10:11 [PATCH 0/6] [RFC] Support Intel APX EGPR (part II) Cui, Lili
  2023-09-21 10:11 ` [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32 Cui, Lili
@ 2023-09-21 10:11 ` Cui, Lili
  2023-09-28 14:53   ` Jan Beulich
  2023-09-21 10:11 ` [PATCH 3/6] x86-64: Add R_X86_64_CODE_4_GOTPCRELX Cui, Lili
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Cui, Lili @ 2023-09-21 10:11 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant

All opcodes listed map0 0x4*/0x7*/0xa* and map0 0x3*/0x8*
are reserved under REX2 and triggers #UD when prefixed with REX2

gas/ChangeLog:

	* config/tc-i386.c (match_template): Handle check_EgprOperands when
	instruction has no operand.
	* testsuite/gas/i386/x86-64-pseudos-bad.l: Add rex2 illegal test cases.
	* testsuite/gas/i386/x86-64-pseudos-bad.s: Ditto.
	* testsuite/gas/i386/x86-64-pseudos.d: Delete illegal test case.
	* testsuite/gas/i386/x86-64-pseudos.s: Ditto.

opcodes/ChangeLog:

	* i386-opc.tbl: Add No_egpr to rex2 illegal instructions.
	* i386-tbl.h: Regenerated.
---
 gas/config/tc-i386.c                        |  2 +-
 gas/testsuite/gas/i386/x86-64-pseudos-bad.l | 36 +++++++++++
 gas/testsuite/gas/i386/x86-64-pseudos-bad.s | 42 +++++++++++++
 gas/testsuite/gas/i386/x86-64-pseudos.d     |  1 -
 gas/testsuite/gas/i386/x86-64-pseudos.s     |  1 -
 opcodes/i386-opc.tbl                        | 70 ++++++++++-----------
 6 files changed, 114 insertions(+), 38 deletions(-)

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 8bdd386ed47..ad427ff54c3 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7316,7 +7316,7 @@ match_template (char mnem_suffix)
       /* Do not verify operands when there are none.  */
       if (!t->operands)
 	{
-	  if (VEX_check_encoding (t))
+	  if (VEX_check_encoding (t) || check_EgprOperands (t))
 	    {
 	      specific_error = progress (i.error);
 	      continue;
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos-bad.l b/gas/testsuite/gas/i386/x86-64-pseudos-bad.l
index 3f9f67fcf4b..7b45a326e65 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos-bad.l
+++ b/gas/testsuite/gas/i386/x86-64-pseudos-bad.l
@@ -4,3 +4,39 @@
 .*:5: Error: .*`vmovaps'.*
 .*:6: Error: .*`vmovaps'.*
 .*:7: Error: .*`rorx'.*
+.*:10: Error: .*`mov'.*
+.*:11: Error: .*`movabs'.*
+.*:12: Error: .*`cmps'.*
+.*:13: Error: .*`lods'.*
+.*:14: Error: .*`lods'.*
+.*:15: Error: .*`lods'.*
+.*:16: Error: .*`movsb'.*
+.*:17: Error: .*`movsb'.*
+.*:18: Error: .*`scas'.*
+.*:19: Error: .*`scas'.*
+.*:20: Error: .*`scas'.*
+.*:21: Error: .*`stos'.*
+.*:22: Error: .*`stos'.*
+.*:23: Error: .*`stos'.*
+.*:26: Error: .*`jo'.*
+.*:27: Error: .*`jno'.*
+.*:28: Error: .*`jb'.*
+.*:29: Error: .*`jae'.*
+.*:30: Error: .*`je'.*
+.*:31: Error: .*`jne'.*
+.*:32: Error: .*`jbe'.*
+.*:33: Error: .*`ja'.*
+.*:34: Error: .*`js'.*
+.*:35: Error: .*`jns'.*
+.*:36: Error: .*`jp'.*
+.*:37: Error: .*`jnp'.*
+.*:38: Error: .*`jl'.*
+.*:39: Error: .*`jge'.*
+.*:40: Error: .*`jle'.*
+.*:41: Error: .*`jg'.*
+.*:44: Error: .*`wrmsr'.*
+.*:45: Error: .*`rdtsc'.*
+.*:46: Error: .*`rdmsr'.*
+.*:47: Error: .*`sysenter'.*
+.*:48: Error: .*`sysexit'.*
+.*:49: Error: .*`rdpmc'.*
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos-bad.s b/gas/testsuite/gas/i386/x86-64-pseudos-bad.s
index 3b923593a6a..2f9ea8315e8 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos-bad.s
+++ b/gas/testsuite/gas/i386/x86-64-pseudos-bad.s
@@ -5,3 +5,45 @@ pseudos:
 	{rex} vmovaps %xmm7,%xmm2
 	{rex} vmovaps %xmm17,%xmm2
 	{rex} rorx $7,%eax,%ebx
+
+	#All opcodes in the row 0xa* prefixed REX2 are illegal.
+	{rex2} mov    0x90909090,%al
+	{rex2} movabs 0x1,%al
+	{rex2} cmpsb  %es:(%edi),%ds:(%esi)
+	{rex2} lodsb
+	{rex2} lods   %ds:(%esi),%al
+	{rex2} lodsb   (%esi)
+	{rex2} movsb
+	{rex2} movsb   (%esi), (%edi)
+	{rex2} scasl
+	{rex2} scas   %es:(%edi),%eax
+	{rex2} scasb   (%edi)
+	{rex2} stosb
+	{rex2} stosb   (%edi)
+	{rex2} stos   %eax,%es:(%edi)
+
+	#All opcodes in the row 0x7* prefixed REX2 are illegal.
+	{rex2} jo     .+2-0x70
+	{rex2} jno    .+2-0x70
+	{rex2} jb     .+2-0x70
+	{rex2} jae    .+2-0x70
+	{rex2} je     .+2-0x70
+	{rex2} jne    .+2-0x70
+	{rex2} jbe    .+2-0x70
+	{rex2} ja     .+2-0x70
+	{rex2} js     .+2-0x70
+	{rex2} jns    .+2-0x70
+	{rex2} jp     .+2-0x70
+	{rex2} jnp    .+2-0x70
+	{rex2} jl     .+2-0x70
+	{rex2} jge    .+2-0x70
+	{rex2} jle    .+2-0x70
+	{rex2} jg     .+2-0x70
+
+	#All opcodes in the row 0xf3* prefixed REX2 are illegal.
+	{rex2} wrmsr
+	{rex2} rdtsc
+	{rex2} rdmsr
+	{rex2} sysenter
+	{rex2} sysexitl
+	{rex2} rdpmc
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d
index f6257c01792..3764a71a43f 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.d
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.d
@@ -448,7 +448,6 @@ Disassembly of section .text:
  +[a-f0-9]+:	41 0f 38 01 00       	phaddw \(%r8\),%mm0
  +[a-f0-9]+:	88 c4                	mov    %al,%ah
  +[a-f0-9]+:	d5 00 d3 e0          	{rex2} shl %cl,%eax
- +[a-f0-9]+:	d5 00 a0 01 00 00 00 00 00 00 00 	{rex2} movabs 0x1,%al
  +[a-f0-9]+:	d5 00 38 ca          	{rex2} cmp %cl,%dl
  +[a-f0-9]+:	d5 00 b3 01          	{rex2} mov \$(0x)?1,%bl
  +[a-f0-9]+:	d5 00 89 c3          	{rex2} mov %eax,%ebx
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.s b/gas/testsuite/gas/i386/x86-64-pseudos.s
index 9f756e5ba04..e3b39834e05 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.s
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.s
@@ -405,7 +405,6 @@ _start:
 	{rex} phaddw (%r8),%mm0
 	{rex2} mov %al,%ah
 	{rex2} shl %cl, %eax
-	{rex2} movabs 1, %al
 	{rex2} cmp %cl, %dl
 	{rex2} mov $1, %bl
 	{rex2} movl %eax,%ebx
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 4d1b6742060..b6452ef7f53 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -162,7 +162,7 @@
 // Move instructions.
 mov, 0xa0, No64, D|W|CheckOperandSize|No_sSuf|No_qSuf, { Disp16|Disp32|Unspecified|Byte|Word|Dword, Acc|Byte|Word|Dword }
 mov, 0xa0, x64, D|W|CheckOperandSize|No_sSuf|No_egpr, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
-movabs, 0xa0, x64, D|W|CheckOperandSize|No_sSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
+movabs, 0xa0, x64, D|W|CheckOperandSize|No_sSuf|No_egpr, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
 mov, 0x88, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixRelease, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 // In the 64bit mode the short form mov immediate is redefined to have
 // 64bit value.
@@ -339,7 +339,7 @@ cmp, 0x3c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 cmp, 0x80/7, 0, W|Modrm|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 test, 0x84, 0, D|W|C|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
-test, 0xa8, 0, W|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+test, 0xa8, 0, W|No_sSuf|Optimize|No_egpr, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 test, 0xf6/0, 0, W|Modrm|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 and, 0x20, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -646,7 +646,7 @@ leave, 0xc9, x64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|NoRex64, {}
          s:8, ns:9, p:a, pe:a, np:b, po:b, l:c, nge:c, nl:d, ge:d, le:e, ng:e, nle:f, g:f>
 
 // Conditional jumps.
-j<cc>, 0x7<cc:opc>, 0, Jump|NoSuf|BNDPrefixOk, { Disp8|Disp16|Disp32 }
+j<cc>, 0x7<cc:opc>, 0, Jump|NoSuf|BNDPrefixOk|No_egpr, { Disp8|Disp16|Disp32 }
 
 // jcxz vs. jecxz is chosen on the basis of the address size prefix.
 jcxz, 0xe3, No64, JumpByte|Size16|NoSuf, { Disp8 }
@@ -672,36 +672,36 @@ loopne, 0xe0, x64, JumpByte|No_bSuf|No_wSuf|No_sSuf|NoRex64, { Disp8 }
 set<cc>, 0xf9<cc:opc>/0, i386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Reg8|Byte|Unspecified|BaseIndex }
 
 // String manipulation.
-cmps, 0xa6, 0, W|No_sSuf|RepPrefixOk, {}
-cmps, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-scmp, 0xa6, 0, W|No_sSuf|RepPrefixOk, {}
-scmp, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+cmps, 0xa6, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+cmps, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+scmp, 0xa6, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+scmp, 0xa6, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ins, 0x6c, i186, W|No_sSuf|No_qSuf|RepPrefixOk, {}
 ins, 0x6c, i186, W|No_sSuf|No_qSuf|IsStringEsOp1|RepPrefixOk, { InOutPortReg, Byte|Word|Dword|Unspecified|BaseIndex }
 outs, 0x6e, i186, W|No_sSuf|No_qSuf|RepPrefixOk, {}
 outs, 0x6e, i186, W|No_sSuf|No_qSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Unspecified|BaseIndex, InOutPortReg }
-lods, 0xac, 0, W|No_sSuf|RepPrefixOk, {}
-lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
-slod, 0xac, 0, W|No_sSuf|RepPrefixOk, {}
-slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
-movs, 0xa4, 0, W|No_sSuf|RepPrefixOk, {}
-movs, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-smov, 0xa4, 0, W|No_sSuf|RepPrefixOk, {}
-smov, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-scas, 0xae, 0, W|No_sSuf|RepPrefixOk, {}
-scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
-ssca, 0xae, 0, W|No_sSuf|RepPrefixOk, {}
-ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
-stos, 0xaa, 0, W|No_sSuf|RepPrefixOk, {}
-stos, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-stos, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-ssto, 0xaa, 0, W|No_sSuf|RepPrefixOk, {}
-ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+lods, 0xac, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+lods, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+slod, 0xac, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+slod, 0xac, 0, W|No_sSuf|IsString|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+movs, 0xa4, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+movs, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+smov, 0xa4, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+smov, 0xa4, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+scas, 0xae, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+scas, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+ssca, 0xae, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ssca, 0xae, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+stos, 0xaa, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+stos, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+stos, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ssto, 0xaa, 0, W|No_sSuf|RepPrefixOk|No_egpr, {}
+ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp0|RepPrefixOk|No_egpr, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ssto, 0xaa, 0, W|No_sSuf|IsStringEsOp1|RepPrefixOk|No_egpr, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 xlat, 0xd7, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf, {}
 xlat, 0xd7, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|IsString, { Byte|Unspecified|BaseIndex }
 
@@ -1075,21 +1075,21 @@ invlpg, 0xf01/7, i486, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex }
 cpuid, 0xfa2, i486, NoSuf, {}
 
 // Pentium extensions.
-wrmsr, 0xf30, i586, NoSuf, {}
-rdtsc, 0xf31, i586, NoSuf, {}
-rdmsr, 0xf32, i586, NoSuf, {}
+wrmsr, 0xf30, i586, NoSuf|No_egpr, {}
+rdtsc, 0xf31, i586, NoSuf|No_egpr, {}
+rdmsr, 0xf32, i586, NoSuf|No_egpr, {}
 cmpxchg8b, 0xfc7/1, i586, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64|HLEPrefixLock, { Qword|Unspecified|BaseIndex }
 
 // Pentium II/Pentium Pro extensions.
-sysenter, 0xf34, x64, Intel64Only|NoSuf, {}
+sysenter, 0xf34, x64, Intel64Only|NoSuf|No_egpr, {}
 sysenter, 0xf34, i686|No64, NoSuf, {}
-sysexit, 0xf35, x64, Intel64Only|No_bSuf|No_wSuf|No_sSuf, {}
+sysexit, 0xf35, x64, Intel64Only|No_bSuf|No_wSuf|No_sSuf|No_egpr, {}
 sysexit, 0xf35, i686|No64, NoSuf, {}
 fxsave, 0xfae/0, FXSR, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Unspecified|BaseIndex }
 fxsave64, 0xfae/0, FXSR|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
 fxrstor, 0xfae/1, FXSR, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Unspecified|BaseIndex }
 fxrstor64, 0xfae/1, FXSR|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
-rdpmc, 0xf33, i686, NoSuf, {}
+rdpmc, 0xf33, i686, NoSuf|No_egpr, {}
 // official undefined instr.
 ud2, 0xf0b, i186, NoSuf, {}
 // alias for ud2
-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 3/6] x86-64: Add R_X86_64_CODE_4_GOTPCRELX
  2023-09-21 10:11 [PATCH 0/6] [RFC] Support Intel APX EGPR (part II) Cui, Lili
  2023-09-21 10:11 ` [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32 Cui, Lili
  2023-09-21 10:11 ` [PATCH 2/6] Disable pseudo prefix {rex2} for illegal instructions Cui, Lili
@ 2023-09-21 10:11 ` Cui, Lili
  2023-09-21 10:11 ` [PATCH 4/6] gold: Handle R_X86_64_CODE_4_GOTPCRELX Cui, Lili
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Cui, Lili @ 2023-09-21 10:11 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant, H.J. Lu

From: "H.J. Lu" <hjl.tools@gmail.com>

For

	mov        name@GOTPCREL(%rip), %reg
	test       %reg, name@GOTPCREL(%rip)
	binop      name@GOTPCREL(%rip), %reg

where binop is one of adc, add, add, cmp, or, sbb, sub, xor instructions,
add

 # define R_X86_64_CODE_4_GOTPCRELX  43

if the instruction starts at 4 bytes before the relocation offset.  It
similar to R_X86_64_GOTPCRELX.  Linker can treat R_X86_64_CODE_4_GOTPCRELX
as R_X86_64_GOTPCREL or convert the above instructions to

	lea	name(%rip), %reg
	mov	$name, %reg
	test	$name, %reg
	binop	$name, %reg

if the instruction is encoded with the REX2 prefix when possible.

bfd/

	* elf64-x86-64.c (x86_64_elf_howto_table): Add
	R_X86_64_CODE_4_GOTPCRELX.
	(R_X86_64_standard): Updated.
	(x86_64_reloc_map): Add BFD_RELOC_X86_64_CODE_4_GOTPCRELX.
	(elf_x86_64_convert_load_reloc): Handle R_X86_64_CODE_4_GOTPCRELX.
	(elf_x86_64_scan_relocs): Likewise.
	(elf_x86_64_relocate_section): Likewise.
	* reloc.c (bfd_reloc_code_real): Add
	BFD_RELOC_X86_64_CODE_4_GOTPCRELX.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.

gas/

	* write.h (fix): Add fx_tcbit3.  Change fx_unused to 1 bit.
	* config/tc-i386.c (tc_i386_fix_adjustable): Handle
	BFD_RELOC_X86_64_CODE_4_GOTPCRELX.
	(tc_gen_reloc): Likewise.
	(output_disp): Set fixP->fx_tcbit3 for REX2 prefix.
	(i386_validate_fix): Generate BFD_RELOC_X86_64_CODE_4_GOTPCRELX
	if fixp->fx_tcbit3 is set.
	* config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Add
	BFD_RELOC_X86_64_CODE_4_GOTPCRELX.
	(TC_FORCE_RELOCATION_ABS): Likewise.
	* testsuite/gas/i386/x86-64-gotpcrel.s: Add tests for
	R_X86_64_CODE_4_GOTPCRELX.
	* testsuite/gas/i386/x86-64-localpic.s: Likewise.
	* testsuite/gas/i386/x86-64-gotpcrel.d: Updated.
	* testsuite/gas/i386/x86-64-localpic.d: Likewise.
	* testsuite/gas/i386/ilp32/x86-64-localpic.d: Likewise.

include/

	* elf/x86-64.h (elf_x86_64_reloc_type): Add
	R_X86_64_CODE_4_GOTPCRELX.

ld/

	* testsuite/ld-x86-64/apx-load1.s: New file.
	* testsuite/ld-x86-64/apx-load1a.d: Likewise.
	* testsuite/ld-x86-64/apx-load1b.d: Likewise.
	* testsuite/ld-x86-64/apx-load1c.d: Likewise.
	* testsuite/ld-x86-64/apx-load1d.d: Likewise.
	* testsuite/ld-x86-64/x86-64.exp: Run apx-load1a, apx-load1b,
	apx-load1c and apx-load1d.
---
 bfd/bfd-in2.h                                 |  1 +
 bfd/elf64-x86-64.c                            | 73 ++++++++++++++-----
 bfd/libbfd.h                                  |  1 +
 bfd/reloc.c                                   |  2 +
 gas/config/tc-i386.c                          | 18 ++++-
 gas/config/tc-i386.h                          |  6 +-
 .../gas/i386/ilp32/x86-64-localpic.d          |  4 +-
 gas/testsuite/gas/i386/x86-64-gotpcrel.d      | 12 +++
 gas/testsuite/gas/i386/x86-64-gotpcrel.s      | 19 +++++
 gas/testsuite/gas/i386/x86-64-localpic.d      |  4 +-
 gas/testsuite/gas/i386/x86-64-localpic.s      |  2 +
 gas/write.h                                   |  3 +-
 include/elf/x86-64.h                          |  6 +-
 ld/testsuite/ld-x86-64/apx-load1.s            | 51 +++++++++++++
 ld/testsuite/ld-x86-64/apx-load1a.d           | 54 ++++++++++++++
 ld/testsuite/ld-x86-64/apx-load1b.d           | 55 ++++++++++++++
 ld/testsuite/ld-x86-64/apx-load1c.d           | 47 ++++++++++++
 ld/testsuite/ld-x86-64/apx-load1d.d           | 47 ++++++++++++
 ld/testsuite/ld-x86-64/x86-64.exp             |  4 +
 19 files changed, 382 insertions(+), 27 deletions(-)
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1.s
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1a.d
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1b.d
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1c.d
 create mode 100644 ld/testsuite/ld-x86-64/apx-load1d.d

diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 1c4f75ae244..39fc92888d6 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3881,6 +3881,7 @@ instruction.  */
   BFD_RELOC_X86_64_PLT32_BND,
   BFD_RELOC_X86_64_GOTPCRELX,
   BFD_RELOC_X86_64_REX_GOTPCRELX,
+  BFD_RELOC_X86_64_CODE_4_GOTPCRELX,
 
 /* ns32k relocations  */
   BFD_RELOC_NS32K_IMM_8,
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index e7a0a9166f5..02d3cda79fd 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -170,12 +170,15 @@ static reloc_howto_type x86_64_elf_howto_table[] =
   HOWTO(R_X86_64_REX_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed,
 	bfd_elf_generic_reloc, "R_X86_64_REX_GOTPCRELX", false, 0, 0xffffffff,
 	true),
+  HOWTO(R_X86_64_CODE_4_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed,
+	bfd_elf_generic_reloc, "R_X86_64_CODE_4_GOTPCRELX", false, 0, 0xffffffff,
+	true),
 
   /* We have a gap in the reloc numbers here.
      R_X86_64_standard counts the number up to this point, and
      R_X86_64_vt_offset is the value to subtract from a reloc type of
      R_X86_64_GNU_VT* to form an index into this table.  */
-#define R_X86_64_standard (R_X86_64_REX_GOTPCRELX + 1)
+#define R_X86_64_standard (R_X86_64_CODE_4_GOTPCRELX + 1)
 #define R_X86_64_vt_offset (R_X86_64_GNU_VTINHERIT - R_X86_64_standard)
 
 /* GNU extension to record C++ vtable hierarchy.  */
@@ -244,6 +247,7 @@ static const struct elf_reloc_map x86_64_reloc_map[] =
   { BFD_RELOC_X86_64_PLT32_BND,	R_X86_64_PLT32_BND, },
   { BFD_RELOC_X86_64_GOTPCRELX, R_X86_64_GOTPCRELX, },
   { BFD_RELOC_X86_64_REX_GOTPCRELX, R_X86_64_REX_GOTPCRELX, },
+  { BFD_RELOC_X86_64_CODE_4_GOTPCRELX, R_X86_64_CODE_4_GOTPCRELX, },
   { BFD_RELOC_VTABLE_INHERIT,	R_X86_64_GNU_VTINHERIT, },
   { BFD_RELOC_VTABLE_ENTRY,	R_X86_64_GNU_VTENTRY, },
 };
@@ -1586,7 +1590,8 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
   bfd_vma roff = irel->r_offset;
   bfd_vma abs_relocation;
 
-  if (roff < (r_type == R_X86_64_REX_GOTPCRELX ? 3 : 2))
+  if (roff < (r_type == R_X86_64_CODE_4_GOTPCRELX
+	      ? 4 : (r_type == R_X86_64_REX_GOTPCRELX ? 3 : 2)))
     return true;
 
   raddend = irel->r_addend;
@@ -1597,8 +1602,18 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
   htab = elf_x86_hash_table (link_info, X86_64_ELF_DATA);
   is_pic = bfd_link_pic (link_info);
 
-  relocx = (r_type == R_X86_64_GOTPCRELX
-	    || r_type == R_X86_64_REX_GOTPCRELX);
+  if (r_type == R_X86_64_CODE_4_GOTPCRELX)
+    {
+      /* Skip if this isn't a REX2 instruction.  */
+      opcode = bfd_get_8 (abfd, contents + roff - 4);
+      if (opcode != 0xd5)
+	return true;
+
+      relocx = true;
+    }
+  else
+    relocx = (r_type == R_X86_64_GOTPCRELX
+	      || r_type == R_X86_64_REX_GOTPCRELX);
 
   /* TRUE if --no-relax is used.  */
   no_overflow = link_info->disable_target_specific_optimizations > 1;
@@ -1610,9 +1625,9 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
   /* Convert mov to lea since it has been done for a while.  */
   if (opcode != 0x8b)
     {
-      /* Only convert R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX
-	 for call, jmp or one of adc, add, and, cmp, or, sbb, sub,
-	 test, xor instructions.  */
+      /* Only convert R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX
+	 and R_X86_64_CODE_4_GOTPCRELX for call, jmp or one of adc,
+	 add, and, cmp, or, sbb, sub, test, xor instructions.  */
       if (!relocx)
 	return true;
     }
@@ -1797,13 +1812,22 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
     }
   else
     {
-      unsigned int rex;
+      unsigned int rex = 0;
       unsigned int rex_mask = REX_R;
+      unsigned int rex2 = 0;
+      unsigned int rex2_mask = REX_R | REX_R << 4;
+      bool rex_w = false;
 
-      if (r_type == R_X86_64_REX_GOTPCRELX)
-	rex = bfd_get_8 (abfd, contents + roff - 3);
-      else
-	rex = 0;
+      if (r_type == R_X86_64_CODE_4_GOTPCRELX)
+	{
+	  rex2 = bfd_get_8 (abfd, contents + roff - 3);
+	  rex_w = (rex2 & REX_W) != 0;
+	}
+      else if (r_type == R_X86_64_REX_GOTPCRELX)
+	{
+	  rex = bfd_get_8 (abfd, contents + roff - 3);
+	  rex_w = (rex & REX_W) != 0;
+	}
 
       if (opcode == 0x8b)
 	{
@@ -1824,8 +1848,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
 	      opcode = 0xc7;
 	      modrm = bfd_get_8 (abfd, contents + roff - 1);
 	      modrm = 0xc0 | (modrm & 0x38) >> 3;
-	      if ((rex & REX_W) != 0
-		  && ABI_64_P (link_info->output_bfd))
+	      if (rex_w && ABI_64_P (link_info->output_bfd))
 		{
 		  /* Keep the REX_W bit in REX byte for LP64.  */
 		  r_type = R_X86_64_32S;
@@ -1837,8 +1860,9 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
 		     use R_X86_64_32 and clear the W bit to avoid
 		     sign-extend imm32 to imm64.  */
 		  r_type = R_X86_64_32;
-		  /* Clear the W bit in REX byte.  */
+		  /* Clear the W bit in REX byte and REX2 payload.  */
 		  rex_mask |= REX_W;
+		  rex2_mask |= REX_W;
 		  goto rewrite_modrm_rex;
 		}
 	    }
@@ -1867,7 +1891,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
 
 	  /* Use R_X86_64_32 with 32-bit operand to avoid relocation
 	     overflow when sign-extending imm32 to imm64.  */
-	  r_type = (rex & REX_W) != 0 ? R_X86_64_32S : R_X86_64_32;
+	  r_type = rex_w ? R_X86_64_32S : R_X86_64_32;
 
 	rewrite_modrm_rex:
 	  if (abs_relocation)
@@ -1893,6 +1917,13 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
 	      rex = (rex & ~rex_mask) | (rex & REX_R) >> 2;
 	      bfd_put_8 (abfd, rex, contents + roff - 3);
 	    }
+	  else if (rex2)
+	    {
+	      /* Move the R bits to the B bits in REX2 payload byte.  */
+	      rex2 = ((rex2 & ~rex2_mask)
+		      | (rex2 & (REX_R | REX_R << 4)) >> 2);
+	      bfd_put_8 (abfd, rex2, contents + roff - 3);
+	    }
 
 	  /* No addend for R_X86_64_32/R_X86_64_32S relocations.  */
 	  irel->r_addend = 0;
@@ -2058,7 +2089,8 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
       converted_reloc = false;
       if ((r_type == R_X86_64_GOTPCREL
 	   || r_type == R_X86_64_GOTPCRELX
-	   || r_type == R_X86_64_REX_GOTPCRELX)
+	   || r_type == R_X86_64_REX_GOTPCRELX
+	   || r_type == R_X86_64_CODE_4_GOTPCRELX)
 	  && (h == NULL || h->type != STT_GNU_IFUNC))
 	{
 	  Elf_Internal_Rela *irel = (Elf_Internal_Rela *) rel;
@@ -2108,6 +2140,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_X86_64_GOTPCREL:
 	case R_X86_64_GOTPCRELX:
 	case R_X86_64_REX_GOTPCRELX:
+	case R_X86_64_CODE_4_GOTPCRELX:
 	case R_X86_64_TLSGD:
 	case R_X86_64_GOT64:
 	case R_X86_64_GOTPCREL64:
@@ -2710,6 +2743,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 	    case R_X86_64_GOTPCREL:
 	    case R_X86_64_GOTPCRELX:
 	    case R_X86_64_REX_GOTPCRELX:
+	    case R_X86_64_CODE_4_GOTPCRELX:
 	    case R_X86_64_GOTPCREL64:
 	      base_got = htab->elf.sgot;
 	      off = h->got.offset;
@@ -2935,6 +2969,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 	case R_X86_64_GOTPCREL:
 	case R_X86_64_GOTPCRELX:
 	case R_X86_64_REX_GOTPCRELX:
+	case R_X86_64_CODE_4_GOTPCRELX:
 	case R_X86_64_GOTPCREL64:
 	  /* Use global offset table entry as symbol value.  */
 	case R_X86_64_GOTPLT64:
@@ -3025,7 +3060,8 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 		      && !(sym->st_shndx == SHN_ABS
 			   && (r_type == R_X86_64_GOTPCREL
 			       || r_type == R_X86_64_GOTPCRELX
-			       || r_type == R_X86_64_REX_GOTPCRELX)))
+			       || r_type == R_X86_64_REX_GOTPCRELX
+			       || r_type == R_X86_64_CODE_4_GOTPCRELX)))
 		    relative_reloc = true;
 		}
 	    }
@@ -3063,6 +3099,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 	  if (r_type != R_X86_64_GOTPCREL
 	      && r_type != R_X86_64_GOTPCRELX
 	      && r_type != R_X86_64_REX_GOTPCRELX
+	      && r_type != R_X86_64_CODE_4_GOTPCRELX
 	      && r_type != R_X86_64_GOTPCREL64)
 	    relocation -= htab->elf.sgotplt->output_section->vma
 			  - htab->elf.sgotplt->output_offset;
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index d5f42f22c08..9a1ce1a4d65 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1463,6 +1463,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_X86_64_PLT32_BND",
   "BFD_RELOC_X86_64_GOTPCRELX",
   "BFD_RELOC_X86_64_REX_GOTPCRELX",
+  "BFD_RELOC_X86_64_CODE_4_GOTPCRELX",
   "BFD_RELOC_NS32K_IMM_8",
   "BFD_RELOC_NS32K_IMM_16",
   "BFD_RELOC_NS32K_IMM_32",
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 2ac883d0eac..bf291fa52e9 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -2481,6 +2481,8 @@ ENUMX
   BFD_RELOC_X86_64_GOTPCRELX
 ENUMX
   BFD_RELOC_X86_64_REX_GOTPCRELX
+ENUMX
+  BFD_RELOC_X86_64_CODE_4_GOTPCRELX
 ENUMDOC
   x86-64/elf relocations
 
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index ad427ff54c3..2f78e9a5a38 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3599,6 +3599,7 @@ tc_i386_fix_adjustable (fixS *fixP ATTRIBUTE_UNUSED)
       || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPCREL
       || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX
       || fixP->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX
+      || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPCRELX
       || fixP->fx_r_type == BFD_RELOC_X86_64_TLSGD
       || fixP->fx_r_type == BFD_RELOC_X86_64_TLSLD
       || fixP->fx_r_type == BFD_RELOC_X86_64_DTPOFF32
@@ -10707,6 +10708,10 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
 		  && !i.prefix[ADDR_PREFIX])
 		fixP->fx_signed = 1;
 
+	      /* Set fx_tcbit3 for REX2 prefix.  */
+	      if (is_any_apx_rex2_encoding ())
+		fixP->fx_tcbit3 = 1;
+
 	      /* Check for "call/jmp *mem", "mov mem, %reg",
 		 "test %reg, mem" and "binop mem, %reg" where binop
 		 is one of adc, add, and, cmp, or, sbb, sub, xor
@@ -15789,9 +15794,14 @@ i386_validate_fix (fixS *fixp)
 		abort ();
 #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
 	      if (fixp->fx_tcbit2)
-		fixp->fx_r_type = (fixp->fx_tcbit
-				   ? BFD_RELOC_X86_64_REX_GOTPCRELX
-				   : BFD_RELOC_X86_64_GOTPCRELX);
+		{
+		  if (fixp->fx_tcbit3)
+		    fixp->fx_r_type = BFD_RELOC_X86_64_CODE_4_GOTPCRELX;
+		  else
+		    fixp->fx_r_type = (fixp->fx_tcbit
+				       ? BFD_RELOC_X86_64_REX_GOTPCRELX
+				       : BFD_RELOC_X86_64_GOTPCRELX);
+		}
 	      else
 #endif
 		fixp->fx_r_type = BFD_RELOC_X86_64_GOTPCREL;
@@ -15895,6 +15905,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
     case BFD_RELOC_X86_64_GOTPCREL:
     case BFD_RELOC_X86_64_GOTPCRELX:
     case BFD_RELOC_X86_64_REX_GOTPCRELX:
+    case BFD_RELOC_X86_64_CODE_4_GOTPCRELX:
     case BFD_RELOC_386_PLT32:
     case BFD_RELOC_386_GOT32:
     case BFD_RELOC_386_GOT32X:
@@ -16053,6 +16064,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
 	  case BFD_RELOC_X86_64_GOTPCREL:
 	  case BFD_RELOC_X86_64_GOTPCRELX:
 	  case BFD_RELOC_X86_64_REX_GOTPCRELX:
+	  case BFD_RELOC_X86_64_CODE_4_GOTPCRELX:
 	  case BFD_RELOC_X86_64_TLSGD:
 	  case BFD_RELOC_X86_64_TLSLD:
 	  case BFD_RELOC_X86_64_GOTTPOFF:
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 80d66c1ce15..f49a1a77598 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -169,7 +169,8 @@ extern int tc_i386_fix_adjustable (struct fix *);
    || (FIX)->fx_r_type == BFD_RELOC_386_GOTPC			\
    || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCREL		\
    || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX		\
-   || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX)
+   || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX	\
+   || (FIX)->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPCRELX)
 
 #define TC_FORCE_RELOCATION_ABS(FIX)				\
   (TC_FORCE_RELOCATION (FIX)					\
@@ -177,7 +178,8 @@ extern int tc_i386_fix_adjustable (struct fix *);
    || (FIX)->fx_r_type == BFD_RELOC_386_GOT32X			\
    || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCREL		\
    || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX		\
-   || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX)
+   || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX	\
+   || (FIX)->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPCRELX)
 
 extern int i386_parse_name (char *, expressionS *, char *);
 #define md_parse_name(s, e, m, c) i386_parse_name (s, e, c)
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d b/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d
index d0cc4e8efc9..57d4843a5b5 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d
@@ -3,10 +3,12 @@
 #readelf: -rsW
 #name: x86-64 (ILP32) local PIC
 
-Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 2 entries:
+Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 4 entries:
  +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend
 [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +foo - 4
 [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +bar - 4
+[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +foo - 4
+[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +bar - 4
 #...
  +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +foo
  +[0-9]+: +fffffff0 +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +ABS +bar
diff --git a/gas/testsuite/gas/i386/x86-64-gotpcrel.d b/gas/testsuite/gas/i386/x86-64-gotpcrel.d
index 57792216e9a..12fadfbca4e 100644
--- a/gas/testsuite/gas/i386/x86-64-gotpcrel.d
+++ b/gas/testsuite/gas/i386/x86-64-gotpcrel.d
@@ -24,4 +24,16 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	ff 90 00 00 00 00    	call   \*0x0\(%rax\)	5a: R_X86_64_GOTPCREL	foo
 [ 	]*[a-f0-9]+:	ff 25 00 00 00 00    	jmp    \*0x0\(%rip\)        # 64 <_start\+0x64>	60: R_X86_64_GOTPCRELX	foo-0x4
 [ 	]*[a-f0-9]+:	ff a1 00 00 00 00    	jmp    \*0x0\(%rcx\)	66: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 18 c7 c0 00 00 00 00 	mov    \$0x0,%r16	6e: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 48 8b 24 25 00 00 00 00 	mov    0x0,%r20	77: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 48 8b 35 00 00 00 00 	mov    0x0\(%rip\),%r22        # 83 <_start\+0x83>	7f: R_X86_64_CODE_4_GOTPCRELX	foo-0x4
+[ 	]*[a-f0-9]+:	d5 59 8b b4 24 00 00 00 00 	mov    0x0\(%r28\),%r22	88: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 10 ff 90 00 00 00 00 	call   \*0x0\(%r16\)	90: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 11 ff a4 24 00 00 00 00 	jmp    \*0x0\(%r28\)	99: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 18 c7 c0 00 00 00 00 	mov    \$0x0,%r16	a1: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 48 8b 24 25 00 00 00 00 	mov    0x0,%r20	aa: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 48 8b 35 00 00 00 00 	mov    0x0\(%rip\),%r22        # b6 <_start\+0xb6>	b2: R_X86_64_CODE_4_GOTPCRELX	foo-0x4
+[ 	]*[a-f0-9]+:	d5 59 8b b4 24 00 00 00 00 	mov    0x0\(%r28\),%r22	bb: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 10 ff 90 00 00 00 00 	call   \*0x0\(%r16\)	c3: R_X86_64_GOTPCREL	foo
+[ 	]*[a-f0-9]+:	d5 11 ff a4 24 00 00 00 00 	jmp    \*0x0\(%r28\)	cc: R_X86_64_GOTPCREL	foo
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-gotpcrel.s b/gas/testsuite/gas/i386/x86-64-gotpcrel.s
index 981b14ff4df..91b1ca204c8 100644
--- a/gas/testsuite/gas/i386/x86-64-gotpcrel.s
+++ b/gas/testsuite/gas/i386/x86-64-gotpcrel.s
@@ -21,3 +21,22 @@ _start:
 	call	QWORD PTR [rax + foo@GOTPCREL]
 	jmp	QWORD PTR [rip + foo@GOTPCREL]
 	jmp	QWORD PTR [rcx + foo@GOTPCREL]
+
+	.att_syntax prefix
+	movq	$foo@GOTPCREL, %r16
+	movq	foo@GOTPCREL, %r20
+	movq	foo@GOTPCREL(%rip), %r22
+	movq	foo@GOTPCREL(%r28), %r22
+
+	call	*foo@GOTPCREL(%r16)
+	jmp	*foo@GOTPCREL(%r28)
+
+	.intel_syntax noprefix
+
+	mov	r16, offset foo@gotpcrel
+	mov	r20, QWORD PTR [foo@GOTPCREL]
+	mov	r22, QWORD PTR [rip + foo@GOTPCREL]
+	mov	r22, QWORD PTR [r28 + foo@GOTPCREL]
+
+	call	QWORD PTR [r16 + foo@GOTPCREL]
+	jmp	QWORD PTR [r28 + foo@GOTPCREL]
diff --git a/gas/testsuite/gas/i386/x86-64-localpic.d b/gas/testsuite/gas/i386/x86-64-localpic.d
index 62030d410ad..11eb57b30b7 100644
--- a/gas/testsuite/gas/i386/x86-64-localpic.d
+++ b/gas/testsuite/gas/i386/x86-64-localpic.d
@@ -2,10 +2,12 @@
 #readelf: -rsW
 #name: x86-64 local PIC
 
-Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 2 entries:
+Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 4 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
 [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +foo - 4
 [0-9a-f]+ +[0-9a-f]+ R_X86_64_REX_GOTPCRELX +[0-9a-f]+ +bar - 4
+[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +foo - 4
+[0-9a-f]+ +[0-9a-f]+ R_X86_64_CODE_4_GOTPCRELX +[0-9a-f]+ +bar - 4
 #...
  +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +foo
  +[0-9]+: +0+fffffff0 +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +ABS +bar
diff --git a/gas/testsuite/gas/i386/x86-64-localpic.s b/gas/testsuite/gas/i386/x86-64-localpic.s
index beda94dc2f3..183dfb6293b 100644
--- a/gas/testsuite/gas/i386/x86-64-localpic.s
+++ b/gas/testsuite/gas/i386/x86-64-localpic.s
@@ -3,4 +3,6 @@ foo:
 	.quad 0
 	movq	foo@GOTPCREL(%rip), %rax
 	movq	bar@GOTPCREL(%rip), %rax
+	movq	foo@GOTPCREL(%rip), %r26
+	movq	bar@GOTPCREL(%rip), %r26
 	bar = 0xfffffff0
diff --git a/gas/write.h b/gas/write.h
index eb30a76bf85..fd0ab553b23 100644
--- a/gas/write.h
+++ b/gas/write.h
@@ -81,9 +81,10 @@ struct fix
   /* Some bits for the CPU specific code.  */
   unsigned fx_tcbit : 1;
   unsigned fx_tcbit2 : 1;
+  unsigned fx_tcbit3 : 1;
 
   /* Spare bits.  */
-  unsigned fx_unused : 2;
+  unsigned fx_unused : 1;
 
   bfd_reloc_code_real_type fx_r_type;
 
diff --git a/include/elf/x86-64.h b/include/elf/x86-64.h
index 60b3c2ad10e..2d610416bf4 100644
--- a/include/elf/x86-64.h
+++ b/include/elf/x86-64.h
@@ -77,11 +77,15 @@ START_RELOC_NUMBERS (elf_x86_64_reloc_type)
      RELOC_NUMBER (R_X86_64_PLT32_BND, 40)    /* 32 bit PLT address with
 						 BND prefix */
      /* Load from 32 bit signed pc relative offset to GOT entry without
-	REX prefix, relaxable.  */
+	REX nor REX2 prefixes, relaxable.  */
      RELOC_NUMBER (R_X86_64_GOTPCRELX, 41)
      /* Load from 32 bit signed pc relative offset to GOT entry with
 	REX prefix, relaxable.  */
      RELOC_NUMBER (R_X86_64_REX_GOTPCRELX, 42)
+     /* Load from 32 bit signed pc relative offset to GOT entry if the
+	instruction starts at 4 bytes before the relocation offset,
+	relaxable.  */
+     RELOC_NUMBER (R_X86_64_CODE_4_GOTPCRELX, 43)
      RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250)       /* GNU C++ hack  */
      RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251)         /* GNU C++ hack  */
 END_RELOC_NUMBERS (R_X86_64_max)
diff --git a/ld/testsuite/ld-x86-64/apx-load1.s b/ld/testsuite/ld-x86-64/apx-load1.s
new file mode 100644
index 00000000000..f5eac57d82e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/apx-load1.s
@@ -0,0 +1,51 @@
+	.data
+	.type	bar, @object
+bar:
+	.byte	1
+	.size	bar, .-bar
+	.globl	foo
+	.type	foo, @object
+foo:
+	.byte	1
+	.size	foo, .-foo
+	.text
+	.globl	_start
+	.type	_start, @function
+_start:
+	adcl	bar@GOTPCREL(%rip), %r16d
+	addl	bar@GOTPCREL(%rip), %r17d
+	andl	bar@GOTPCREL(%rip), %r18d
+	cmpl	bar@GOTPCREL(%rip), %r19d
+	orl	bar@GOTPCREL(%rip), %r20d
+	sbbl	bar@GOTPCREL(%rip), %r21d
+	subl	bar@GOTPCREL(%rip), %r22d
+	xorl	bar@GOTPCREL(%rip), %r23d
+	testl	%r24d, bar@GOTPCREL(%rip)
+	adcq	bar@GOTPCREL(%rip), %r16
+	addq	bar@GOTPCREL(%rip), %r17
+	andq	bar@GOTPCREL(%rip), %r18
+	cmpq	bar@GOTPCREL(%rip), %r19
+	orq	bar@GOTPCREL(%rip), %r20
+	sbbq	bar@GOTPCREL(%rip), %r21
+	subq	bar@GOTPCREL(%rip), %r22
+	xorq	bar@GOTPCREL(%rip), %r23
+	testq	%r24, bar@GOTPCREL(%rip)
+	adcl	foo@GOTPCREL(%rip), %r16d
+	addl	foo@GOTPCREL(%rip), %r17d
+	andl	foo@GOTPCREL(%rip), %r18d
+	cmpl	foo@GOTPCREL(%rip), %r19d
+	orl	foo@GOTPCREL(%rip), %r20d
+	sbbl	foo@GOTPCREL(%rip), %r21d
+	subl	foo@GOTPCREL(%rip), %r22d
+	xorl	foo@GOTPCREL(%rip), %r23d
+	testl	%r24d, foo@GOTPCREL(%rip)
+	adcq	foo@GOTPCREL(%rip), %r16
+	addq	foo@GOTPCREL(%rip), %r17
+	andq	foo@GOTPCREL(%rip), %r18
+	cmpq	foo@GOTPCREL(%rip), %r19
+	orq	foo@GOTPCREL(%rip), %r20
+	sbbq	foo@GOTPCREL(%rip), %r21
+	subq	foo@GOTPCREL(%rip), %r22
+	xorq	foo@GOTPCREL(%rip), %r23
+	testq	%r24, foo@GOTPCREL(%rip)
+	.size	_start, .-_start
diff --git a/ld/testsuite/ld-x86-64/apx-load1a.d b/ld/testsuite/ld-x86-64/apx-load1a.d
new file mode 100644
index 00000000000..162a2343ebe
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/apx-load1a.d
@@ -0,0 +1,54 @@
+#source: apx-load1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -z max-page-size=0x200000 -z noseparate-code
+#objdump: -dw --sym
+
+.*: +file format .*
+
+SYMBOL TABLE:
+#...
+0+6001d0 l     O .data	0+1 bar
+#...
+0+6001d1 g     O .data	0+1 foo
+#...
+
+Disassembly of section .text:
+
+0+4000b0 <_start>:
+ +[a-f0-9]+:	d5 10 81 d0 d0 01 60 00 	adc    \$0x6001d0,%r16d
+ +[a-f0-9]+:	d5 10 81 c1 d0 01 60 00 	add    \$0x6001d0,%r17d
+ +[a-f0-9]+:	d5 10 81 e2 d0 01 60 00 	and    \$0x6001d0,%r18d
+ +[a-f0-9]+:	d5 10 81 fb d0 01 60 00 	cmp    \$0x6001d0,%r19d
+ +[a-f0-9]+:	d5 10 81 cc d0 01 60 00 	or     \$0x6001d0,%r20d
+ +[a-f0-9]+:	d5 10 81 dd d0 01 60 00 	sbb    \$0x6001d0,%r21d
+ +[a-f0-9]+:	d5 10 81 ee d0 01 60 00 	sub    \$0x6001d0,%r22d
+ +[a-f0-9]+:	d5 10 81 f7 d0 01 60 00 	xor    \$0x6001d0,%r23d
+ +[a-f0-9]+:	d5 11 f7 c0 d0 01 60 00 	test   \$0x6001d0,%r24d
+ +[a-f0-9]+:	d5 18 81 d0 d0 01 60 00 	adc    \$0x6001d0,%r16
+ +[a-f0-9]+:	d5 18 81 c1 d0 01 60 00 	add    \$0x6001d0,%r17
+ +[a-f0-9]+:	d5 18 81 e2 d0 01 60 00 	and    \$0x6001d0,%r18
+ +[a-f0-9]+:	d5 18 81 fb d0 01 60 00 	cmp    \$0x6001d0,%r19
+ +[a-f0-9]+:	d5 18 81 cc d0 01 60 00 	or     \$0x6001d0,%r20
+ +[a-f0-9]+:	d5 18 81 dd d0 01 60 00 	sbb    \$0x6001d0,%r21
+ +[a-f0-9]+:	d5 18 81 ee d0 01 60 00 	sub    \$0x6001d0,%r22
+ +[a-f0-9]+:	d5 18 81 f7 d0 01 60 00 	xor    \$0x6001d0,%r23
+ +[a-f0-9]+:	d5 19 f7 c0 d0 01 60 00 	test   \$0x6001d0,%r24
+ +[a-f0-9]+:	d5 10 81 d0 d1 01 60 00 	adc    \$0x6001d1,%r16d
+ +[a-f0-9]+:	d5 10 81 c1 d1 01 60 00 	add    \$0x6001d1,%r17d
+ +[a-f0-9]+:	d5 10 81 e2 d1 01 60 00 	and    \$0x6001d1,%r18d
+ +[a-f0-9]+:	d5 10 81 fb d1 01 60 00 	cmp    \$0x6001d1,%r19d
+ +[a-f0-9]+:	d5 10 81 cc d1 01 60 00 	or     \$0x6001d1,%r20d
+ +[a-f0-9]+:	d5 10 81 dd d1 01 60 00 	sbb    \$0x6001d1,%r21d
+ +[a-f0-9]+:	d5 10 81 ee d1 01 60 00 	sub    \$0x6001d1,%r22d
+ +[a-f0-9]+:	d5 10 81 f7 d1 01 60 00 	xor    \$0x6001d1,%r23d
+ +[a-f0-9]+:	d5 11 f7 c0 d1 01 60 00 	test   \$0x6001d1,%r24d
+ +[a-f0-9]+:	d5 18 81 d0 d1 01 60 00 	adc    \$0x6001d1,%r16
+ +[a-f0-9]+:	d5 18 81 c1 d1 01 60 00 	add    \$0x6001d1,%r17
+ +[a-f0-9]+:	d5 18 81 e2 d1 01 60 00 	and    \$0x6001d1,%r18
+ +[a-f0-9]+:	d5 18 81 fb d1 01 60 00 	cmp    \$0x6001d1,%r19
+ +[a-f0-9]+:	d5 18 81 cc d1 01 60 00 	or     \$0x6001d1,%r20
+ +[a-f0-9]+:	d5 18 81 dd d1 01 60 00 	sbb    \$0x6001d1,%r21
+ +[a-f0-9]+:	d5 18 81 ee d1 01 60 00 	sub    \$0x6001d1,%r22
+ +[a-f0-9]+:	d5 18 81 f7 d1 01 60 00 	xor    \$0x6001d1,%r23
+ +[a-f0-9]+:	d5 19 f7 c0 d1 01 60 00 	test   \$0x6001d1,%r24
+#pass
diff --git a/ld/testsuite/ld-x86-64/apx-load1b.d b/ld/testsuite/ld-x86-64/apx-load1b.d
new file mode 100644
index 00000000000..8c8962cad2d
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/apx-load1b.d
@@ -0,0 +1,55 @@
+#source: apx-load1.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -melf32_x86_64 -z max-page-size=0x200000 -z noseparate-code
+#objdump: -dw --sym
+
+.*: +file format .*
+
+SYMBOL TABLE:
+#...
+0+600194 l     O .data	0+1 bar
+#...
+0+600195 g     O .data	0+1 foo
+#...
+
+
+Disassembly of section .text:
+
+0+400074 <_start>:
+ +[a-f0-9]+:	d5 10 81 d0 94 01 60 00 	adc    \$0x600194,%r16d
+ +[a-f0-9]+:	d5 10 81 c1 94 01 60 00 	add    \$0x600194,%r17d
+ +[a-f0-9]+:	d5 10 81 e2 94 01 60 00 	and    \$0x600194,%r18d
+ +[a-f0-9]+:	d5 10 81 fb 94 01 60 00 	cmp    \$0x600194,%r19d
+ +[a-f0-9]+:	d5 10 81 cc 94 01 60 00 	or     \$0x600194,%r20d
+ +[a-f0-9]+:	d5 10 81 dd 94 01 60 00 	sbb    \$0x600194,%r21d
+ +[a-f0-9]+:	d5 10 81 ee 94 01 60 00 	sub    \$0x600194,%r22d
+ +[a-f0-9]+:	d5 10 81 f7 94 01 60 00 	xor    \$0x600194,%r23d
+ +[a-f0-9]+:	d5 11 f7 c0 94 01 60 00 	test   \$0x600194,%r24d
+ +[a-f0-9]+:	d5 18 81 d0 94 01 60 00 	adc    \$0x600194,%r16
+ +[a-f0-9]+:	d5 18 81 c1 94 01 60 00 	add    \$0x600194,%r17
+ +[a-f0-9]+:	d5 18 81 e2 94 01 60 00 	and    \$0x600194,%r18
+ +[a-f0-9]+:	d5 18 81 fb 94 01 60 00 	cmp    \$0x600194,%r19
+ +[a-f0-9]+:	d5 18 81 cc 94 01 60 00 	or     \$0x600194,%r20
+ +[a-f0-9]+:	d5 18 81 dd 94 01 60 00 	sbb    \$0x600194,%r21
+ +[a-f0-9]+:	d5 18 81 ee 94 01 60 00 	sub    \$0x600194,%r22
+ +[a-f0-9]+:	d5 18 81 f7 94 01 60 00 	xor    \$0x600194,%r23
+ +[a-f0-9]+:	d5 19 f7 c0 94 01 60 00 	test   \$0x600194,%r24
+ +[a-f0-9]+:	d5 10 81 d0 95 01 60 00 	adc    \$0x600195,%r16d
+ +[a-f0-9]+:	d5 10 81 c1 95 01 60 00 	add    \$0x600195,%r17d
+ +[a-f0-9]+:	d5 10 81 e2 95 01 60 00 	and    \$0x600195,%r18d
+ +[a-f0-9]+:	d5 10 81 fb 95 01 60 00 	cmp    \$0x600195,%r19d
+ +[a-f0-9]+:	d5 10 81 cc 95 01 60 00 	or     \$0x600195,%r20d
+ +[a-f0-9]+:	d5 10 81 dd 95 01 60 00 	sbb    \$0x600195,%r21d
+ +[a-f0-9]+:	d5 10 81 ee 95 01 60 00 	sub    \$0x600195,%r22d
+ +[a-f0-9]+:	d5 10 81 f7 95 01 60 00 	xor    \$0x600195,%r23d
+ +[a-f0-9]+:	d5 11 f7 c0 95 01 60 00 	test   \$0x600195,%r24d
+ +[a-f0-9]+:	d5 18 81 d0 95 01 60 00 	adc    \$0x600195,%r16
+ +[a-f0-9]+:	d5 18 81 c1 95 01 60 00 	add    \$0x600195,%r17
+ +[a-f0-9]+:	d5 18 81 e2 95 01 60 00 	and    \$0x600195,%r18
+ +[a-f0-9]+:	d5 18 81 fb 95 01 60 00 	cmp    \$0x600195,%r19
+ +[a-f0-9]+:	d5 18 81 cc 95 01 60 00 	or     \$0x600195,%r20
+ +[a-f0-9]+:	d5 18 81 dd 95 01 60 00 	sbb    \$0x600195,%r21
+ +[a-f0-9]+:	d5 18 81 ee 95 01 60 00 	sub    \$0x600195,%r22
+ +[a-f0-9]+:	d5 18 81 f7 95 01 60 00 	xor    \$0x600195,%r23
+ +[a-f0-9]+:	d5 19 f7 c0 95 01 60 00 	test   \$0x600195,%r24
+#pass
diff --git a/ld/testsuite/ld-x86-64/apx-load1c.d b/ld/testsuite/ld-x86-64/apx-load1c.d
new file mode 100644
index 00000000000..fdfe00cc61c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/apx-load1c.d
@@ -0,0 +1,47 @@
+#source: apx-load1.s
+#as: --64
+#ld: -shared -melf_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
+#objdump: -dw
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+188 <_start>:
+ +[a-f0-9]+:	d5 40 13 05 f8 01 20 00 	adc    0x2001f8\(%rip\),%r16d        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 03 0d f0 01 20 00 	add    0x2001f0\(%rip\),%r17d        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 23 15 e8 01 20 00 	and    0x2001e8\(%rip\),%r18d        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 3b 1d e0 01 20 00 	cmp    0x2001e0\(%rip\),%r19d        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 0b 25 d8 01 20 00 	or     0x2001d8\(%rip\),%r20d        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 1b 2d d0 01 20 00 	sbb    0x2001d0\(%rip\),%r21d        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 2b 35 c8 01 20 00 	sub    0x2001c8\(%rip\),%r22d        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 33 3d c0 01 20 00 	xor    0x2001c0\(%rip\),%r23d        # 200388 <.*>
+ +[a-f0-9]+:	d5 44 85 05 b8 01 20 00 	test   %r24d,0x2001b8\(%rip\)        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 13 05 b0 01 20 00 	adc    0x2001b0\(%rip\),%r16        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 03 0d a8 01 20 00 	add    0x2001a8\(%rip\),%r17        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 23 15 a0 01 20 00 	and    0x2001a0\(%rip\),%r18        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 3b 1d 98 01 20 00 	cmp    0x200198\(%rip\),%r19        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 0b 25 90 01 20 00 	or     0x200190\(%rip\),%r20        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 1b 2d 88 01 20 00 	sbb    0x200188\(%rip\),%r21        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 2b 35 80 01 20 00 	sub    0x200180\(%rip\),%r22        # 200388 <.*>
+ +[a-f0-9]+:	d5 48 33 3d 78 01 20 00 	xor    0x200178\(%rip\),%r23        # 200388 <.*>
+ +[a-f0-9]+:	d5 4c 85 05 70 01 20 00 	test   %r24,0x200170\(%rip\)        # 200388 <.*>
+ +[a-f0-9]+:	d5 40 13 05 70 01 20 00 	adc    0x200170\(%rip\),%r16d        # 200390 <.*>
+ +[a-f0-9]+:	d5 40 03 0d 68 01 20 00 	add    0x200168\(%rip\),%r17d        # 200390 <.*>
+ +[a-f0-9]+:	d5 40 23 15 60 01 20 00 	and    0x200160\(%rip\),%r18d        # 200390 <.*>
+ +[a-f0-9]+:	d5 40 3b 1d 58 01 20 00 	cmp    0x200158\(%rip\),%r19d        # 200390 <.*>
+ +[a-f0-9]+:	d5 40 0b 25 50 01 20 00 	or     0x200150\(%rip\),%r20d        # 200390 <.*>
+ +[a-f0-9]+:	d5 40 1b 2d 48 01 20 00 	sbb    0x200148\(%rip\),%r21d        # 200390 <.*>
+ +[a-f0-9]+:	d5 40 2b 35 40 01 20 00 	sub    0x200140\(%rip\),%r22d        # 200390 <.*>
+ +[a-f0-9]+:	d5 40 33 3d 38 01 20 00 	xor    0x200138\(%rip\),%r23d        # 200390 <.*>
+ +[a-f0-9]+:	d5 44 85 05 30 01 20 00 	test   %r24d,0x200130\(%rip\)        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 13 05 28 01 20 00 	adc    0x200128\(%rip\),%r16        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 03 0d 20 01 20 00 	add    0x200120\(%rip\),%r17        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 23 15 18 01 20 00 	and    0x200118\(%rip\),%r18        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 3b 1d 10 01 20 00 	cmp    0x200110\(%rip\),%r19        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 0b 25 08 01 20 00 	or     0x200108\(%rip\),%r20        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 1b 2d 00 01 20 00 	sbb    0x200100\(%rip\),%r21        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 2b 35 f8 00 20 00 	sub    0x2000f8\(%rip\),%r22        # 200390 <.*>
+ +[a-f0-9]+:	d5 48 33 3d f0 00 20 00 	xor    0x2000f0\(%rip\),%r23        # 200390 <.*>
+ +[a-f0-9]+:	d5 4c 85 05 e8 00 20 00 	test   %r24,0x2000e8\(%rip\)        # 200390 <.*>
+#pass
diff --git a/ld/testsuite/ld-x86-64/apx-load1d.d b/ld/testsuite/ld-x86-64/apx-load1d.d
new file mode 100644
index 00000000000..4da967822ea
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/apx-load1d.d
@@ -0,0 +1,47 @@
+#source: apx-load1.s
+#as: --x32
+#ld: -shared -melf32_x86_64 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code $NO_DT_RELR_LDFLAGS
+#objdump: -dw
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+100 <_start>:
+ +[a-f0-9]+:	d5 40 13 05 88 01 20 00 	adc    0x200188\(%rip\),%r16d        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 03 0d 80 01 20 00 	add    0x200180\(%rip\),%r17d        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 23 15 78 01 20 00 	and    0x200178\(%rip\),%r18d        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 3b 1d 70 01 20 00 	cmp    0x200170\(%rip\),%r19d        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 0b 25 68 01 20 00 	or     0x200168\(%rip\),%r20d        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 1b 2d 60 01 20 00 	sbb    0x200160\(%rip\),%r21d        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 2b 35 58 01 20 00 	sub    0x200158\(%rip\),%r22d        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 33 3d 50 01 20 00 	xor    0x200150\(%rip\),%r23d        # 200290 <.*>
+ +[a-f0-9]+:	d5 44 85 05 48 01 20 00 	test   %r24d,0x200148\(%rip\)        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 13 05 40 01 20 00 	adc    0x200140\(%rip\),%r16        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 03 0d 38 01 20 00 	add    0x200138\(%rip\),%r17        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 23 15 30 01 20 00 	and    0x200130\(%rip\),%r18        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 3b 1d 28 01 20 00 	cmp    0x200128\(%rip\),%r19        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 0b 25 20 01 20 00 	or     0x200120\(%rip\),%r20        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 1b 2d 18 01 20 00 	sbb    0x200118\(%rip\),%r21        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 2b 35 10 01 20 00 	sub    0x200110\(%rip\),%r22        # 200290 <.*>
+ +[a-f0-9]+:	d5 48 33 3d 08 01 20 00 	xor    0x200108\(%rip\),%r23        # 200290 <.*>
+ +[a-f0-9]+:	d5 4c 85 05 00 01 20 00 	test   %r24,0x200100\(%rip\)        # 200290 <.*>
+ +[a-f0-9]+:	d5 40 13 05 00 01 20 00 	adc    0x200100\(%rip\),%r16d        # 200298 <.*>
+ +[a-f0-9]+:	d5 40 03 0d f8 00 20 00 	add    0x2000f8\(%rip\),%r17d        # 200298 <.*>
+ +[a-f0-9]+:	d5 40 23 15 f0 00 20 00 	and    0x2000f0\(%rip\),%r18d        # 200298 <.*>
+ +[a-f0-9]+:	d5 40 3b 1d e8 00 20 00 	cmp    0x2000e8\(%rip\),%r19d        # 200298 <.*>
+ +[a-f0-9]+:	d5 40 0b 25 e0 00 20 00 	or     0x2000e0\(%rip\),%r20d        # 200298 <.*>
+ +[a-f0-9]+:	d5 40 1b 2d d8 00 20 00 	sbb    0x2000d8\(%rip\),%r21d        # 200298 <.*>
+ +[a-f0-9]+:	d5 40 2b 35 d0 00 20 00 	sub    0x2000d0\(%rip\),%r22d        # 200298 <.*>
+ +[a-f0-9]+:	d5 40 33 3d c8 00 20 00 	xor    0x2000c8\(%rip\),%r23d        # 200298 <.*>
+ +[a-f0-9]+:	d5 44 85 05 c0 00 20 00 	test   %r24d,0x2000c0\(%rip\)        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 13 05 b8 00 20 00 	adc    0x2000b8\(%rip\),%r16        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 03 0d b0 00 20 00 	add    0x2000b0\(%rip\),%r17        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 23 15 a8 00 20 00 	and    0x2000a8\(%rip\),%r18        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 3b 1d a0 00 20 00 	cmp    0x2000a0\(%rip\),%r19        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 0b 25 98 00 20 00 	or     0x200098\(%rip\),%r20        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 1b 2d 90 00 20 00 	sbb    0x200090\(%rip\),%r21        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 2b 35 88 00 20 00 	sub    0x200088\(%rip\),%r22        # 200298 <.*>
+ +[a-f0-9]+:	d5 48 33 3d 80 00 20 00 	xor    0x200080\(%rip\),%r23        # 200298 <.*>
+ +[a-f0-9]+:	d5 4c 85 05 78 00 20 00 	test   %r24,0x200078\(%rip\)        # 200298 <.*>
+#pass
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index f94284b079c..550b17d55d0 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -605,6 +605,10 @@ run_dump_test "load1a"
 run_dump_test "load1b"
 run_dump_test "load1c"
 run_dump_test "load1d"
+run_dump_test "apx-load1a"
+run_dump_test "apx-load1b"
+run_dump_test "apx-load1c"
+run_dump_test "apx-load1d"
 run_dump_test "load2"
 run_dump_test "call1a"
 run_dump_test "call1b"
-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 4/6] gold: Handle R_X86_64_CODE_4_GOTPCRELX
  2023-09-21 10:11 [PATCH 0/6] [RFC] Support Intel APX EGPR (part II) Cui, Lili
                   ` (2 preceding siblings ...)
  2023-09-21 10:11 ` [PATCH 3/6] x86-64: Add R_X86_64_CODE_4_GOTPCRELX Cui, Lili
@ 2023-09-21 10:11 ` Cui, Lili
  2023-09-21 10:11 ` [PATCH 5/6] For Cui, Lili
  2023-09-21 10:11 ` [PATCH 6/6] Gold: Handle R_X86_64_CODE_4_GOTPC32_TLSDESC/R_X86_64_CODE_4_GOTTPOFF Cui, Lili
  5 siblings, 0 replies; 11+ messages in thread
From: Cui, Lili @ 2023-09-21 10:11 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant, H.J. Lu

From: "H.J. Lu" <hjl.tools@gmail.com>

Handle R_X86_64_CODE_4_GOTPCRELX and convert

	mov	name@GOTPCREL(%rip), %r31

to

	lea	name@GOTPCREL(%rip), %r31

if the instruction is encoded with the REX2 prefix when possible.

elfcpp/

	* x86_64.h (R_X86_64_CODE_4_GOTPCRELX): New.

gold/

	* x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Handle
	R_X86_64_CODE_4_GOTPCRELX.
	(Target_x86_64::Scan::get_reference_flags): Likewise.
	(Target_x86_64::Scan::local): Likewise.
	(Target_x86_64::Scan::possible_function_pointer_reloc): Likewise.
	(Target_x86_64::Scan::global): Likewise.
	(Target_x86_64::Relocate::relocate): Likewise.
	* testsuite/x86_64_mov_to_lea1.s: Add a test for
	R_X86_64_CODE_4_GOTPCRELX.
	* testsuite/x86_64_mov_to_lea2.s: Likewise.
	* testsuite/x86_64_mov_to_lea3.s: Likewise.
	* testsuite/x86_64_mov_to_lea4.s: Likewise.
	* testsuite/x86_64_mov_to_lea5.s: Likewise.
	* testsuite/x86_64_mov_to_lea.sh: Updated.
---
 elfcpp/x86_64.h                     |  6 ++++-
 gold/testsuite/x86_64_mov_to_lea.sh | 16 +++++++++++++
 gold/testsuite/x86_64_mov_to_lea1.s |  1 +
 gold/testsuite/x86_64_mov_to_lea2.s |  1 +
 gold/testsuite/x86_64_mov_to_lea3.s |  1 +
 gold/testsuite/x86_64_mov_to_lea4.s |  1 +
 gold/testsuite/x86_64_mov_to_lea5.s |  1 +
 gold/x86_64.cc                      | 37 ++++++++++++++++++++++-------
 8 files changed, 54 insertions(+), 10 deletions(-)

diff --git a/elfcpp/x86_64.h b/elfcpp/x86_64.h
index 0377e773071..97a87ae424d 100644
--- a/elfcpp/x86_64.h
+++ b/elfcpp/x86_64.h
@@ -95,9 +95,13 @@ enum
   R_X86_64_PC32_BND = 39,  // PC relative 32 bit signed with BND prefix
   R_X86_64_PLT32_BND = 40, // 32 bit PLT address with BND prefix
   R_X86_64_GOTPCRELX = 41, // 32 bit signed PC relative offset to GOT
-			   // without REX prefix, relaxable.
+			   // without REX nor REX2 prefixes, relaxable.
   R_X86_64_REX_GOTPCRELX = 42, // 32 bit signed PC relative offset to GOT
 			       // with REX prefix, relaxable.
+  R_X86_64_CODE_4_GOTPCRELX = 43, // 32 bit signed PC relative offset to
+				  // GOT if the instruction starts at 4
+				  // bytes before the relocation offset,
+				  // relaxable.
   // GNU vtable garbage collection extensions.
   R_X86_64_GNU_VTINHERIT = 250,
   R_X86_64_GNU_VTENTRY = 251
diff --git a/gold/testsuite/x86_64_mov_to_lea.sh b/gold/testsuite/x86_64_mov_to_lea.sh
index 1b30e1aa048..3e248ebec3c 100755
--- a/gold/testsuite/x86_64_mov_to_lea.sh
+++ b/gold/testsuite/x86_64_mov_to_lea.sh
@@ -25,20 +25,36 @@
 set -e
 
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea1.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea1.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea2.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea2.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea3.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea3.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea4.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea4.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea5.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea5.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea6.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea6.stdout
 grep -q "mov    0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea7.stdout
+grep -q "mov    0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea7.stdout
 grep -q "mov    0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea8.stdout
+grep -q "mov    0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea8.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea9.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea9.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea10.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea10.stdout
 grep -q "mov    0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea11.stdout
+grep -q "mov    0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea11.stdout
 grep -q "mov    0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea12.stdout
+grep -q "mov    0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea12.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea13.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea13.stdout
 grep -q "lea    -0x[a-f0-9]\+(%rip),%rax" x86_64_mov_to_lea14.stdout
+grep -q "lea    -0x[a-f0-9]\+(%rip),%r26" x86_64_mov_to_lea14.stdout
 grep -q "mov    0x[a-f0-9]\+(%rip),%eax" x86_64_mov_to_lea15.stdout
+grep -q "mov    0x[a-f0-9]\+(%rip),%r26d" x86_64_mov_to_lea15.stdout
 grep -q "mov    0x[a-f0-9]\+(%rip),%eax" x86_64_mov_to_lea16.stdout
+grep -q "mov    0x[a-f0-9]\+(%rip),%r26d" x86_64_mov_to_lea16.stdout
 
 exit 0
diff --git a/gold/testsuite/x86_64_mov_to_lea1.s b/gold/testsuite/x86_64_mov_to_lea1.s
index 4dce487c3fc..298ede12f80 100644
--- a/gold/testsuite/x86_64_mov_to_lea1.s
+++ b/gold/testsuite/x86_64_mov_to_lea1.s
@@ -8,4 +8,5 @@ foo:
 	.type	_start, @function
 _start:
 	movq	foo@GOTPCREL(%rip), %rax
+	movq	foo@GOTPCREL(%rip), %r26
 	.size	_start, .-_start
diff --git a/gold/testsuite/x86_64_mov_to_lea2.s b/gold/testsuite/x86_64_mov_to_lea2.s
index 2a11b7a19f4..404f4c1dd48 100644
--- a/gold/testsuite/x86_64_mov_to_lea2.s
+++ b/gold/testsuite/x86_64_mov_to_lea2.s
@@ -3,4 +3,5 @@
 	.type	_start, @function
 _start:
 	movq	_DYNAMIC@GOTPCREL(%rip), %rax
+	movq	_DYNAMIC@GOTPCREL(%rip), %r26
 	.size	_start, .-_start
diff --git a/gold/testsuite/x86_64_mov_to_lea3.s b/gold/testsuite/x86_64_mov_to_lea3.s
index ac43b783758..838c33edae0 100644
--- a/gold/testsuite/x86_64_mov_to_lea3.s
+++ b/gold/testsuite/x86_64_mov_to_lea3.s
@@ -7,4 +7,5 @@ foo:
 	.type	_start, @function
 _start:
 	movq	foo@GOTPCREL(%rip), %rax
+	movq	foo@GOTPCREL(%rip), %r26
 	.size	_start, .-_start
diff --git a/gold/testsuite/x86_64_mov_to_lea4.s b/gold/testsuite/x86_64_mov_to_lea4.s
index 37bee32bb4e..a68a4cf0d19 100644
--- a/gold/testsuite/x86_64_mov_to_lea4.s
+++ b/gold/testsuite/x86_64_mov_to_lea4.s
@@ -9,4 +9,5 @@ foo:
 	.type	_start, @function
 _start:
 	movq	foo@GOTPCREL(%rip), %rax
+	movq	foo@GOTPCREL(%rip), %r26
 	.size	_start, .-_start
diff --git a/gold/testsuite/x86_64_mov_to_lea5.s b/gold/testsuite/x86_64_mov_to_lea5.s
index e793a2b9b73..e818989deb7 100644
--- a/gold/testsuite/x86_64_mov_to_lea5.s
+++ b/gold/testsuite/x86_64_mov_to_lea5.s
@@ -9,4 +9,5 @@ foo:
 	.type	_start, @function
 _start:
 	movl	foo@GOTPCREL+4(%rip), %eax
+	movl	foo@GOTPCREL+4(%rip), %r26d
 	.size	_start, .-_start
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
index 928dfa8ea34..b7be9bf0d48 100644
--- a/gold/x86_64.cc
+++ b/gold/x86_64.cc
@@ -1053,8 +1053,9 @@ class Target_x86_64 : public Sized_target<size, false>
     gold_assert(gsym != NULL);
     // We cannot do the conversion unless it's one of these relocations.
     if (r_type != elfcpp::R_X86_64_GOTPCREL
-        && r_type != elfcpp::R_X86_64_GOTPCRELX
-        && r_type != elfcpp::R_X86_64_REX_GOTPCRELX)
+	&& r_type != elfcpp::R_X86_64_GOTPCRELX
+	&& r_type != elfcpp::R_X86_64_REX_GOTPCRELX
+	&& r_type != elfcpp::R_X86_64_CODE_4_GOTPCRELX)
       return false;
     // We cannot convert references to IFUNC symbols, or to symbols that
     // are not local to the current module.
@@ -2971,6 +2972,7 @@ Target_x86_64<size>::Scan::get_reference_flags(unsigned int r_type)
     case elfcpp::R_X86_64_GOTPCREL:
     case elfcpp::R_X86_64_GOTPCRELX:
     case elfcpp::R_X86_64_REX_GOTPCRELX:
+    case elfcpp::R_X86_64_CODE_4_GOTPCRELX:
     case elfcpp::R_X86_64_GOTPLT64:
       // Absolute in GOT.
       return Symbol::ABSOLUTE_REF;
@@ -3251,6 +3253,7 @@ Target_x86_64<size>::Scan::local(Symbol_table* symtab,
     case elfcpp::R_X86_64_GOTPCREL:
     case elfcpp::R_X86_64_GOTPCRELX:
     case elfcpp::R_X86_64_REX_GOTPCRELX:
+    case elfcpp::R_X86_64_CODE_4_GOTPCRELX:
     case elfcpp::R_X86_64_GOTPLT64:
       {
 	// The symbol requires a GOT section.
@@ -3261,21 +3264,30 @@ Target_x86_64<size>::Scan::local(Symbol_table* symtab,
 	// mov foo@GOTPCREL(%rip), %reg
 	// to lea foo(%rip), %reg.
 	// in Relocate::relocate.
+	size_t r_offset = reloc.get_r_offset();
 	if (!parameters->incremental()
-	    && (r_type == elfcpp::R_X86_64_GOTPCREL
-		|| r_type == elfcpp::R_X86_64_GOTPCRELX
-		|| r_type == elfcpp::R_X86_64_REX_GOTPCRELX)
+	    && (((r_type == elfcpp::R_X86_64_GOTPCREL
+		  || r_type == elfcpp::R_X86_64_GOTPCRELX
+		  || r_type == elfcpp::R_X86_64_REX_GOTPCRELX)
+		 && r_offset >= 2)
+		|| (r_type == elfcpp::R_X86_64_CODE_4_GOTPCRELX
+		    && r_offset >= 4))
 	    && reloc.get_r_addend() == -4
-	    && reloc.get_r_offset() >= 2
 	    && !is_ifunc)
 	  {
 	    section_size_type stype;
 	    const unsigned char* view = object->section_contents(data_shndx,
 								 &stype, true);
-	    if (view[reloc.get_r_offset() - 2] == 0x8b)
+	    if (r_type == elfcpp::R_X86_64_CODE_4_GOTPCRELX
+		&& view[r_offset - 4] != 0xd5)
+	      goto need_got;
+
+	    if (view[r_offset - 2] == 0x8b)
 	      break;
 	  }
 
+need_got:
+
 	// The symbol requires a GOT entry.
 	unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
 
@@ -3498,6 +3510,7 @@ Target_x86_64<size>::Scan::possible_function_pointer_reloc(
     case elfcpp::R_X86_64_GOTPCREL:
     case elfcpp::R_X86_64_GOTPCRELX:
     case elfcpp::R_X86_64_REX_GOTPCRELX:
+    case elfcpp::R_X86_64_CODE_4_GOTPCRELX:
     case elfcpp::R_X86_64_GOTPLT64:
       {
 	return true;
@@ -3714,6 +3727,7 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
     case elfcpp::R_X86_64_GOTPCREL:
     case elfcpp::R_X86_64_GOTPCRELX:
     case elfcpp::R_X86_64_REX_GOTPCRELX:
+    case elfcpp::R_X86_64_CODE_4_GOTPCRELX:
     case elfcpp::R_X86_64_GOTPLT64:
       {
 	// The symbol requires a GOT entry.
@@ -3736,8 +3750,12 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
         size_t r_offset = reloc.get_r_offset();
         if (!parameters->incremental()
 	    && reloc.get_r_addend() == -4
-	    && r_offset >= 2
-            && Target_x86_64<size>::can_convert_mov_to_lea(gsym, r_type,
+	    && ((r_type != elfcpp::R_X86_64_CODE_4_GOTPCRELX
+		 && r_offset >= 2)
+		|| (r_type == elfcpp::R_X86_64_CODE_4_GOTPCRELX
+		    && r_offset >= 4
+		    && view[r_offset - 4] == 0xd5))
+	    && Target_x86_64<size>::can_convert_mov_to_lea(gsym, r_type,
                                                            r_offset, &view))
           break;
 
@@ -4420,6 +4438,7 @@ Target_x86_64<size>::Relocate::relocate(
     case elfcpp::R_X86_64_GOTPCREL:
     case elfcpp::R_X86_64_GOTPCRELX:
     case elfcpp::R_X86_64_REX_GOTPCRELX:
+    case elfcpp::R_X86_64_CODE_4_GOTPCRELX:
       {
       bool converted_p = false;
 
-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 5/6] For
  2023-09-21 10:11 [PATCH 0/6] [RFC] Support Intel APX EGPR (part II) Cui, Lili
                   ` (3 preceding siblings ...)
  2023-09-21 10:11 ` [PATCH 4/6] gold: Handle R_X86_64_CODE_4_GOTPCRELX Cui, Lili
@ 2023-09-21 10:11 ` Cui, Lili
  2023-09-21 10:11 ` [PATCH 6/6] Gold: Handle R_X86_64_CODE_4_GOTPC32_TLSDESC/R_X86_64_CODE_4_GOTTPOFF Cui, Lili
  5 siblings, 0 replies; 11+ messages in thread
From: Cui, Lili @ 2023-09-21 10:11 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant, H.J. Lu

From: "H.J. Lu" <hjl.tools@gmail.com>

	add	name@gottpoff(%rip), %reg
	mov	name@gottpoff(%rip), %reg

add

 # define R_X86_64_CODE_4_GOTTPOFF	44

and for

	lea	name@tlsdesc(%rip), %reg

add

 # define R_X86_64_CODE_4_GOTPC32_TLSDESC	45

if the instruction starts at 4 bytes before the relocation offset.
They are similar to R_X86_64_GOTTPOFF and R_X86_64_GOTPC32_TLSDESC,
respectively.  Linker can covert GOTTPOFF to

	add	$name@tpoff, %reg
	mov	$name@tpoff, %reg

and GOTPC32_TLSDESC to

	mov	$name@tpoff, %reg
	mov	name@gottpoff(%rip), %reg

if the instruction is encoded with the REX2 prefix when possible.

bfd/

	* elf64-x86-64.c (x86_64_elf_howto_table): Add
	R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC.
	(R_X86_64_standard): Updated.
	(x86_64_reloc_map): Add BFD_RELOC_X86_64_CODE_4_GOTTPOFF
	and BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC.
	(elf_x86_64_check_tls_transition): Handle R_X86_64_CODE_4_GOTTPOFF
	and R_X86_64_CODE_4_GOTPC32_TLSDESC.
	(elf_x86_64_tls_transition): Likewise.
	(elf_x86_64_scan_relocs): Likewise.
	(elf_x86_64_relocate_section): Likewise.
	* reloc.c (bfd_reloc_code_real): Add
	BFD_RELOC_X86_64_CODE_4_GOTTPOFF and
	BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.

gas/

	* config/tc-i386.c (tc_i386_fix_adjustable): Handle
	BFD_RELOC_X86_64_CODE_4_GOTTPOFF and
	BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC.
	(md_assemble): Handle BFD_RELOC_X86_64_CODE_4_GOTTPOFF.
	(output_insn): Don't add empty REX prefix with REX2 prefix.
	(output_disp): Handle BFD_RELOC_X86_64_CODE_4_GOTTPOFF and
	BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC.
	(md_apply_fix): Likewise.
	(i386_validate_fix): Generate BFD_RELOC_X86_64_CODE_4_GOTTPOFF or
	BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC if ixp->fx_tcbit3 is set.
	(tc_gen_reloc): Handle BFD_RELOC_X86_64_CODE_4_GOTTPOFF and
	BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC.
	* testsuite/gas/i386/x86-64-gottpoff.d: New file.
	* testsuite/gas/i386/x86-64-gottpoff.s: Likewise.
	* testsuite/gas/i386/x86-64-tlsdesc.d: Likewise.
	* testsuite/gas/i386/x86-64-tlsdesc.s: Likewise.

include/

	* elf/x86-64.h (elf_x86_64_reloc_type): Add
	R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC

ld/

	* testsuite/ld-x86-64/tlsbindesc.d: Updated.
	* testsuite/ld-x86-64/tlsbindesc.rd: Likewise.
	* testsuite/ld-x86-64/tlsbindesc.s: Add R_X86_64_CODE_4_GOTTPOFF
	and R_X86_64_CODE_4_GOTPC32_TLSDESC tests.
---
 bfd/bfd-in2.h                            |   2 +
 bfd/elf64-x86-64.c                       | 125 ++++++++++++++++++++++-
 bfd/libbfd.h                             |   2 +
 bfd/reloc.c                              |   4 +
 gas/config/tc-i386.c                     |  20 ++++
 gas/testsuite/gas/i386/x86-64-gottpoff.d |  19 ++++
 gas/testsuite/gas/i386/x86-64-gottpoff.s |  15 +++
 gas/testsuite/gas/i386/x86-64-tlsdesc.d  |  17 +++
 gas/testsuite/gas/i386/x86-64-tlsdesc.s  |  13 +++
 gas/testsuite/gas/i386/x86-64.exp        |   3 +
 include/elf/x86-64.h                     |   6 ++
 ld/testsuite/ld-x86-64/tlsbindesc.dd     |  49 +++++++++
 ld/testsuite/ld-x86-64/tlsbindesc.rd     |  36 +++----
 ld/testsuite/ld-x86-64/tlsbindesc.s      |  39 +++++++
 14 files changed, 329 insertions(+), 21 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-gottpoff.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-gottpoff.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-tlsdesc.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-tlsdesc.s

diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 39fc92888d6..dadd7ce8a1a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3882,6 +3882,8 @@ instruction.  */
   BFD_RELOC_X86_64_GOTPCRELX,
   BFD_RELOC_X86_64_REX_GOTPCRELX,
   BFD_RELOC_X86_64_CODE_4_GOTPCRELX,
+  BFD_RELOC_X86_64_CODE_4_GOTTPOFF,
+  BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC,
 
 /* ns32k relocations  */
   BFD_RELOC_NS32K_IMM_8,
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 02d3cda79fd..ae8b3b753c1 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -173,12 +173,18 @@ static reloc_howto_type x86_64_elf_howto_table[] =
   HOWTO(R_X86_64_CODE_4_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed,
 	bfd_elf_generic_reloc, "R_X86_64_CODE_4_GOTPCRELX", false, 0, 0xffffffff,
 	true),
+  HOWTO(R_X86_64_CODE_4_GOTTPOFF, 0, 4, 32, true, 0, complain_overflow_signed,
+	bfd_elf_generic_reloc, "R_X86_64_CODE_4_GOTTPOFF", false, 0, 0xffffffff,
+	true),
+  HOWTO(R_X86_64_CODE_4_GOTPC32_TLSDESC, 0, 4, 32, true, 0,
+	complain_overflow_bitfield, bfd_elf_generic_reloc,
+	"R_X86_64_CODE_4_GOTPC32_TLSDESC", false, 0, 0xffffffff, true),
 
   /* We have a gap in the reloc numbers here.
      R_X86_64_standard counts the number up to this point, and
      R_X86_64_vt_offset is the value to subtract from a reloc type of
      R_X86_64_GNU_VT* to form an index into this table.  */
-#define R_X86_64_standard (R_X86_64_CODE_4_GOTPCRELX + 1)
+#define R_X86_64_standard (R_X86_64_CODE_4_GOTPC32_TLSDESC + 1)
 #define R_X86_64_vt_offset (R_X86_64_GNU_VTINHERIT - R_X86_64_standard)
 
 /* GNU extension to record C++ vtable hierarchy.  */
@@ -248,6 +254,8 @@ static const struct elf_reloc_map x86_64_reloc_map[] =
   { BFD_RELOC_X86_64_GOTPCRELX, R_X86_64_GOTPCRELX, },
   { BFD_RELOC_X86_64_REX_GOTPCRELX, R_X86_64_REX_GOTPCRELX, },
   { BFD_RELOC_X86_64_CODE_4_GOTPCRELX, R_X86_64_CODE_4_GOTPCRELX, },
+  { BFD_RELOC_X86_64_CODE_4_GOTTPOFF, R_X86_64_CODE_4_GOTTPOFF, },
+  { BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC, R_X86_64_CODE_4_GOTPC32_TLSDESC, },
   { BFD_RELOC_VTABLE_INHERIT,	R_X86_64_GNU_VTINHERIT, },
   { BFD_RELOC_VTABLE_ENTRY,	R_X86_64_GNU_VTENTRY, },
 };
@@ -1262,6 +1270,19 @@ elf_x86_64_check_tls_transition (bfd *abfd,
 	    return (r_type == R_X86_64_PC32 || r_type == R_X86_64_PLT32);
 	}
 
+    case R_X86_64_CODE_4_GOTTPOFF:
+      /* Check transition from IE access model:
+		mov foo@gottpoff(%rip), %reg
+		add foo@gottpoff(%rip), %reg
+		where reg is one of r16 to r31.  */
+
+      if (offset < 4
+	  || (offset + 4) > sec->size
+	  || contents[offset - 4] != 0xd5)
+	return false;
+
+      goto check_gottpoff;
+
     case R_X86_64_GOTTPOFF:
       /* Check transition from IE access model:
 		mov foo@gottpoff(%rip), %reg
@@ -1288,6 +1309,7 @@ elf_x86_64_check_tls_transition (bfd *abfd,
 	    return false;
 	}
 
+ check_gottpoff:
       val = bfd_get_8 (abfd, contents + offset - 2);
       if (val != 0x8b && val != 0x03)
 	return false;
@@ -1295,6 +1317,18 @@ elf_x86_64_check_tls_transition (bfd *abfd,
       val = bfd_get_8 (abfd, contents + offset - 1);
       return (val & 0xc7) == 5;
 
+    case R_X86_64_CODE_4_GOTPC32_TLSDESC:
+      /* Check transition from GDesc access model:
+		lea x@tlsdesc(%rip), %reg
+	 where reg is one of r16 to r31.  */
+
+      if (offset < 4
+	  || (offset + 4) > sec->size
+	  || contents[offset - 4] != 0xd5)
+	return false;
+
+      goto check_tlsdesc;
+
     case R_X86_64_GOTPC32_TLSDESC:
       /* Check transition from GDesc access model:
 		leaq x@tlsdesc(%rip), %rax <--- LP64 mode.
@@ -1312,6 +1346,7 @@ elf_x86_64_check_tls_transition (bfd *abfd,
       if (val != 0x48 && (ABI_64_P (abfd) || val != 0x40))
 	return false;
 
+ check_tlsdesc:
       if (bfd_get_8 (abfd, contents + offset - 2) != 0x8d)
 	return false;
 
@@ -1378,8 +1413,10 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
     {
     case R_X86_64_TLSGD:
     case R_X86_64_GOTPC32_TLSDESC:
+    case R_X86_64_CODE_4_GOTPC32_TLSDESC:
     case R_X86_64_TLSDESC_CALL:
     case R_X86_64_GOTTPOFF:
+    case R_X86_64_CODE_4_GOTTPOFF:
       if (bfd_link_executable (info))
 	{
 	  if (h == NULL)
@@ -1399,6 +1436,7 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
 
 	  if (to_type == R_X86_64_TLSGD
 	      || to_type == R_X86_64_GOTPC32_TLSDESC
+	      || to_type == R_X86_64_CODE_4_GOTPC32_TLSDESC
 	      || to_type == R_X86_64_TLSDESC_CALL)
 	    {
 	      if (tls_type == GOT_TLS_IE)
@@ -1424,7 +1462,9 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
     }
 
   /* Return TRUE if there is no transition.  */
-  if (from_type == to_type)
+  if (from_type == to_type
+      || (from_type == R_X86_64_CODE_4_GOTTPOFF
+	  && to_type == R_X86_64_GOTTPOFF))
     return true;
 
   /* Check if the transition can be performed.  */
@@ -2132,6 +2172,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
 	  break;
 
 	case R_X86_64_GOTTPOFF:
+	case R_X86_64_CODE_4_GOTTPOFF:
 	  if (!bfd_link_executable (info))
 	    info->flags |= DF_STATIC_TLS;
 	  /* Fall through */
@@ -2146,6 +2187,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_X86_64_GOTPCREL64:
 	case R_X86_64_GOTPLT64:
 	case R_X86_64_GOTPC32_TLSDESC:
+	case R_X86_64_CODE_4_GOTPC32_TLSDESC:
 	case R_X86_64_TLSDESC_CALL:
 	  /* This symbol requires a global offset table entry.	*/
 	  {
@@ -2167,9 +2209,11 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
 		tls_type = GOT_TLS_GD;
 		break;
 	      case R_X86_64_GOTTPOFF:
+	      case R_X86_64_CODE_4_GOTTPOFF:
 		tls_type = GOT_TLS_IE;
 		break;
 	      case R_X86_64_GOTPC32_TLSDESC:
+	      case R_X86_64_CODE_4_GOTPC32_TLSDESC:
 	      case R_X86_64_TLSDESC_CALL:
 		tls_type = GOT_TLS_GDESC;
 		break;
@@ -3518,8 +3562,10 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 
 	case R_X86_64_TLSGD:
 	case R_X86_64_GOTPC32_TLSDESC:
+	case R_X86_64_CODE_4_GOTPC32_TLSDESC:
 	case R_X86_64_TLSDESC_CALL:
 	case R_X86_64_GOTTPOFF:
+	case R_X86_64_CODE_4_GOTTPOFF:
 	  tls_type = GOT_UNKNOWN;
 	  if (h == NULL && local_got_offsets)
 	    tls_type = elf_x86_local_got_tls_type (input_bfd) [r_symndx];
@@ -3660,6 +3706,37 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 			      contents + roff);
 		  continue;
 		}
+	      else if (r_type == R_X86_64_CODE_4_GOTPC32_TLSDESC)
+		{
+		  /* GDesc -> LE transition.
+		     It's originally something like:
+		     lea x@tlsdesc(%rip), %reg
+
+		     Change it to:
+		     mov $x@tpoff, %reg
+		     where reg is one of r16 to r31.  */
+
+		  unsigned int val, rex2;
+		  unsigned int rex2_mask = REX_R | REX_R << 4;
+
+		  if (roff < 4)
+		    goto corrupt_input;
+		  rex2 = bfd_get_8 (input_bfd, contents + roff - 3);
+		  val = bfd_get_8 (input_bfd, contents + roff - 1);
+		  /* Move the R bits to the B bits in REX2 payload
+		     byte.  */
+		  bfd_put_8 (output_bfd,
+			     ((rex2 & ~rex2_mask)
+			      | (rex2 & rex2_mask) >> 2),
+			     contents + roff - 3);
+		  bfd_put_8 (output_bfd, 0xc7, contents + roff - 2);
+		  bfd_put_8 (output_bfd, 0xc0 | ((val >> 3) & 7),
+			     contents + roff - 1);
+		  bfd_put_32 (output_bfd,
+			      elf_x86_64_tpoff (info, relocation),
+			      contents + roff);
+		  continue;
+		}
 	      else if (r_type == R_X86_64_TLSDESC_CALL)
 		{
 		  /* GDesc -> LE transition.
@@ -3799,6 +3876,46 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 			      contents + roff);
 		  continue;
 		}
+	      else if (r_type == R_X86_64_CODE_4_GOTTPOFF)
+		{
+		  /* IE->LE transition:
+		     Originally it can be one of:
+		     mov foo@gottpoff(%rip), %reg
+		     add foo@gottpoff(%rip), %reg
+		     We change it into:
+		     mov $foo@tpoff, %reg
+		     add $foo@tpoff, %reg
+		     where reg is one of r16 to r31.  */
+
+		  unsigned int rex2, type, reg;
+		  unsigned int rex2_mask = REX_R | REX_R << 4;
+
+		  if (roff < 4)
+		    goto corrupt_input;
+
+		  rex2 = bfd_get_8 (input_bfd, contents + roff - 3);
+		  type = bfd_get_8 (input_bfd, contents + roff - 2);
+		  reg = bfd_get_8 (input_bfd, contents + roff - 1);
+		  reg >>= 3;
+		  /* Move the R bits to the B bits in REX2 payload
+		     byte.  */
+		  if (type == 0x8b)
+		    type = 0xc7;
+		  else
+		    type = 0x81;
+		  bfd_put_8 (output_bfd,
+			     ((rex2 & ~rex2_mask)
+			      | (rex2 & rex2_mask) >> 2),
+			     contents + roff - 3);
+		  bfd_put_8 (output_bfd, type,
+			     contents + roff - 2);
+		  bfd_put_8 (output_bfd, 0xc0 | reg,
+			     contents + roff - 1);
+		  bfd_put_32 (output_bfd,
+			      elf_x86_64_tpoff (info, relocation),
+			      contents + roff);
+		  continue;
+		}
 	      else
 		BFD_ASSERT (false);
 	    }
@@ -3905,6 +4022,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 	  if (r_type_tls == r_type)
 	    {
 	      if (r_type == R_X86_64_GOTPC32_TLSDESC
+		  || r_type == R_X86_64_CODE_4_GOTPC32_TLSDESC
 		  || r_type == R_X86_64_TLSDESC_CALL)
 		relocation = htab->elf.sgotplt->output_section->vma
 		  + htab->elf.sgotplt->output_offset
@@ -4000,7 +4118,8 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 		  wrel++;
 		  continue;
 		}
-	      else if (r_type == R_X86_64_GOTPC32_TLSDESC)
+	      else if (r_type == R_X86_64_GOTPC32_TLSDESC
+		       || r_type == R_X86_64_CODE_4_GOTPC32_TLSDESC)
 		{
 		  /* GDesc -> IE transition.
 		     It's originally something like:
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 9a1ce1a4d65..8235542ed6c 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1464,6 +1464,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_X86_64_GOTPCRELX",
   "BFD_RELOC_X86_64_REX_GOTPCRELX",
   "BFD_RELOC_X86_64_CODE_4_GOTPCRELX",
+  "BFD_RELOC_X86_64_CODE_4_GOTTPOFF",
+  "BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC",
   "BFD_RELOC_NS32K_IMM_8",
   "BFD_RELOC_NS32K_IMM_16",
   "BFD_RELOC_NS32K_IMM_32",
diff --git a/bfd/reloc.c b/bfd/reloc.c
index bf291fa52e9..556add4f158 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -2483,6 +2483,10 @@ ENUMX
   BFD_RELOC_X86_64_REX_GOTPCRELX
 ENUMX
   BFD_RELOC_X86_64_CODE_4_GOTPCRELX
+ENUMX
+  BFD_RELOC_X86_64_CODE_4_GOTTPOFF
+ENUMX
+  BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC
 ENUMDOC
   x86-64/elf relocations
 
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 2f78e9a5a38..395f61c077c 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3605,10 +3605,12 @@ tc_i386_fix_adjustable (fixS *fixP ATTRIBUTE_UNUSED)
       || fixP->fx_r_type == BFD_RELOC_X86_64_DTPOFF32
       || fixP->fx_r_type == BFD_RELOC_X86_64_DTPOFF64
       || fixP->fx_r_type == BFD_RELOC_X86_64_GOTTPOFF
+      || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTTPOFF
       || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF32
       || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF64
       || fixP->fx_r_type == BFD_RELOC_X86_64_GOTOFF64
       || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPC32_TLSDESC
+      || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC
       || fixP->fx_r_type == BFD_RELOC_X86_64_TLSDESC_CALL
       || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
       || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
@@ -5512,6 +5514,7 @@ md_assemble (char *line)
 	  case BFD_RELOC_386_TLS_GOTIE:
 	  case BFD_RELOC_386_TLS_LE_32:
 	  case BFD_RELOC_X86_64_GOTTPOFF:
+	  case BFD_RELOC_X86_64_CODE_4_GOTTPOFF:
 	  case BFD_RELOC_X86_64_TLSLD:
 	    as_bad (_("TLS relocation cannot be used with `%s'"), insn_name (&i.tm));
 	    return;
@@ -10328,6 +10331,7 @@ output_insn (void)
 	     is also needed for lea with R_X86_64_GOTPC32_TLSDESC
 	     relocation for GDesc -> IE/LE optimization.  */
 	  if (x86_elf_abi == X86_64_X32_ABI
+	      && !is_any_apx_rex2_encoding ()
 	      && i.operands == 2
 	      && (i.reloc[0] == BFD_RELOC_X86_64_GOTTPOFF
 		  || i.reloc[0] == BFD_RELOC_X86_64_GOTPC32_TLSDESC)
@@ -10693,7 +10697,9 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
 		    case BFD_RELOC_X86_64_TLSGD:
 		    case BFD_RELOC_X86_64_TLSLD:
 		    case BFD_RELOC_X86_64_GOTTPOFF:
+		    case BFD_RELOC_X86_64_CODE_4_GOTTPOFF:
 		    case BFD_RELOC_X86_64_GOTPC32_TLSDESC:
+		    case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC:
 		    case BFD_RELOC_X86_64_TLSDESC_CALL:
 		      i.has_gotpc_tls_reloc = true;
 		    default:
@@ -14177,7 +14183,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
       case BFD_RELOC_X86_64_TLSGD:
       case BFD_RELOC_X86_64_TLSLD:
       case BFD_RELOC_X86_64_GOTTPOFF:
+      case BFD_RELOC_X86_64_CODE_4_GOTTPOFF:
       case BFD_RELOC_X86_64_GOTPC32_TLSDESC:
+      case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC:
 	value = 0; /* Fully resolved at runtime.  No addend.  */
 	/* Fallthrough */
       case BFD_RELOC_386_TLS_LE:
@@ -15782,6 +15790,14 @@ i386_validate_fix (fixS *fixp)
     return IS_ELF && fixp->fx_addsy
 	   && (!S_IS_DEFINED (fixp->fx_addsy)
 	       || S_IS_EXTERNAL (fixp->fx_addsy));
+
+  if (fixp->fx_tcbit3)
+    {
+      if (fixp->fx_r_type == BFD_RELOC_X86_64_GOTTPOFF)
+	fixp->fx_r_type = BFD_RELOC_X86_64_CODE_4_GOTTPOFF;
+      else if (fixp->fx_r_type == BFD_RELOC_X86_64_GOTPC32_TLSDESC)
+	fixp->fx_r_type = BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC;
+    }
 #endif
 
   if (fixp->fx_subsy)
@@ -15926,6 +15942,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
     case BFD_RELOC_X86_64_DTPOFF32:
     case BFD_RELOC_X86_64_DTPOFF64:
     case BFD_RELOC_X86_64_GOTTPOFF:
+    case BFD_RELOC_X86_64_CODE_4_GOTTPOFF:
     case BFD_RELOC_X86_64_TPOFF32:
     case BFD_RELOC_X86_64_TPOFF64:
     case BFD_RELOC_X86_64_GOTOFF64:
@@ -15936,6 +15953,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
     case BFD_RELOC_X86_64_GOTPLT64:
     case BFD_RELOC_X86_64_PLTOFF64:
     case BFD_RELOC_X86_64_GOTPC32_TLSDESC:
+    case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC:
     case BFD_RELOC_X86_64_TLSDESC_CALL:
     case BFD_RELOC_RVA:
     case BFD_RELOC_VTABLE_ENTRY:
@@ -16068,7 +16086,9 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
 	  case BFD_RELOC_X86_64_TLSGD:
 	  case BFD_RELOC_X86_64_TLSLD:
 	  case BFD_RELOC_X86_64_GOTTPOFF:
+	  case BFD_RELOC_X86_64_CODE_4_GOTTPOFF:
 	  case BFD_RELOC_X86_64_GOTPC32_TLSDESC:
+	  case BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC:
 	  case BFD_RELOC_X86_64_TLSDESC_CALL:
 	    rel->addend = fixp->fx_offset - fixp->fx_size;
 	    break;
diff --git a/gas/testsuite/gas/i386/x86-64-gottpoff.d b/gas/testsuite/gas/i386/x86-64-gottpoff.d
new file mode 100644
index 00000000000..d42abccc6d9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-gottpoff.d
@@ -0,0 +1,19 @@
+#as:
+#objdump: -dwr
+#name: x86-64 gottpoff
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+ +[a-f0-9]+:	48 03 05 00 00 00 00 	add    0x0\(%rip\),%rax        # 7 <_start\+0x7>	3: R_X86_64_GOTTPOFF	foo-0x4
+ +[a-f0-9]+:	48 8b 05 00 00 00 00 	mov    0x0\(%rip\),%rax        # e <_start\+0xe>	a: R_X86_64_GOTTPOFF	foo-0x4
+ +[a-f0-9]+:	d5 48 03 05 00 00 00 00 	add    0x0\(%rip\),%r16        # 16 <_start\+0x16>	12: R_X86_64_CODE_4_GOTTPOFF	foo-0x4
+ +[a-f0-9]+:	d5 48 8b 25 00 00 00 00 	mov    0x0\(%rip\),%r20        # 1e <_start\+0x1e>	1a: R_X86_64_CODE_4_GOTTPOFF	foo-0x4
+ +[a-f0-9]+:	48 03 05 00 00 00 00 	add    0x0\(%rip\),%rax        # 25 <_start\+0x25>	21: R_X86_64_GOTTPOFF	foo-0x4
+ +[a-f0-9]+:	48 8b 05 00 00 00 00 	mov    0x0\(%rip\),%rax        # 2c <_start\+0x2c>	28: R_X86_64_GOTTPOFF	foo-0x4
+ +[a-f0-9]+:	d5 48 03 05 00 00 00 00 	add    0x0\(%rip\),%r16        # 34 <_start\+0x34>	30: R_X86_64_CODE_4_GOTTPOFF	foo-0x4
+ +[a-f0-9]+:	d5 48 8b 25 00 00 00 00 	mov    0x0\(%rip\),%r20        # 3c <_start\+0x3c>	38: R_X86_64_CODE_4_GOTTPOFF	foo-0x4
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-gottpoff.s b/gas/testsuite/gas/i386/x86-64-gottpoff.s
new file mode 100644
index 00000000000..6f8f9d1480c
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-gottpoff.s
@@ -0,0 +1,15 @@
+	.text
+_start:
+	addq	foo@GOTTPOFF(%rip), %rax
+	movq	foo@GOTTPOFF(%rip), %rax
+
+	addq	foo@GOTTPOFF(%rip), %r16
+	movq	foo@GOTTPOFF(%rip), %r20
+
+	.intel_syntax noprefix
+
+	addq	rax, QWORD PTR [rip + foo@GOTTPOFF]
+	movq	rax, QWORD PTR [rip + foo@GOTTPOFF]
+
+	addq	r16, QWORD PTR [rip + foo@GOTTPOFF]
+	movq	r20, QWORD PTR [rip + foo@GOTTPOFF]
diff --git a/gas/testsuite/gas/i386/x86-64-tlsdesc.d b/gas/testsuite/gas/i386/x86-64-tlsdesc.d
new file mode 100644
index 00000000000..50c04e1e6b9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-tlsdesc.d
@@ -0,0 +1,17 @@
+#as:
+#objdump: -dwr
+#name: x86-64 tlsdesc
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+ +[a-f0-9]+:	48 8d 05 00 00 00 00 	lea    0x0\(%rip\),%rax        # 7 <_start\+0x7>	3: R_X86_64_GOTPC32_TLSDESC	foo-0x4
+ +[a-f0-9]+:	d5 48 8d 05 00 00 00 00 	lea    0x0\(%rip\),%r16        # f <_start\+0xf>	b: R_X86_64_CODE_4_GOTPC32_TLSDESC	foo-0x4
+ +[a-f0-9]+:	d5 48 8d 25 00 00 00 00 	lea    0x0\(%rip\),%r20        # 17 <_start\+0x17>	13: R_X86_64_CODE_4_GOTPC32_TLSDESC	foo-0x4
+ +[a-f0-9]+:	48 8d 05 00 00 00 00 	lea    0x0\(%rip\),%rax        # 1e <_start\+0x1e>	1a: R_X86_64_GOTPC32_TLSDESC	foo-0x4
+ +[a-f0-9]+:	d5 48 8d 05 00 00 00 00 	lea    0x0\(%rip\),%r16        # 26 <_start\+0x26>	22: R_X86_64_CODE_4_GOTPC32_TLSDESC	foo-0x4
+ +[a-f0-9]+:	d5 48 8d 25 00 00 00 00 	lea    0x0\(%rip\),%r20        # 2e <_start\+0x2e>	2a: R_X86_64_CODE_4_GOTPC32_TLSDESC	foo-0x4
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-tlsdesc.s b/gas/testsuite/gas/i386/x86-64-tlsdesc.s
new file mode 100644
index 00000000000..91f8d23dca4
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-tlsdesc.s
@@ -0,0 +1,13 @@
+	.text
+_start:
+	leaq	foo@TLSDESC(%rip), %rax
+
+	leaq	foo@TLSDESC(%rip), %r16
+	leaq	foo@TLSDESC(%rip), %r20
+
+	.intel_syntax noprefix
+
+	leaq	rax, QWORD PTR [rip + foo@TLSDESC]
+
+	leaq	r16, QWORD PTR [rip + foo@TLSDESC]
+	leaq	r20, QWORD PTR [rip + foo@TLSDESC]
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 086dc47b5ba..d1b29c1d8a9 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -661,6 +661,9 @@ if [is_elf_format] then {
     run_dump_test "x86-64-gotpcrel-no-relax"
     run_dump_test "x86-64-gotpcrel-2"
 
+    run_dump_test "x86-64-gottpoff"
+    run_dump_test "x86-64-tlsdesc"
+
     run_dump_test "x86-64-no-got"
 
     run_dump_test "x86-64-addend"
diff --git a/include/elf/x86-64.h b/include/elf/x86-64.h
index 2d610416bf4..bcf509a6f12 100644
--- a/include/elf/x86-64.h
+++ b/include/elf/x86-64.h
@@ -86,6 +86,12 @@ START_RELOC_NUMBERS (elf_x86_64_reloc_type)
 	instruction starts at 4 bytes before the relocation offset,
 	relaxable.  */
      RELOC_NUMBER (R_X86_64_CODE_4_GOTPCRELX, 43)
+     /* PC relative offset to IE GOT entry if the instruction starts at
+	4 bytes before the relocation offset.  */
+     RELOC_NUMBER (R_X86_64_CODE_4_GOTTPOFF, 44)
+     /* 32 bit signed pc relative offset to TLS descriptor in the GOT if
+	instruction starts at 4 bytes before the relocation offset.  */
+     RELOC_NUMBER (R_X86_64_CODE_4_GOTPC32_TLSDESC, 45)
      RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250)       /* GNU C++ hack  */
      RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251)         /* GNU C++ hack  */
 END_RELOC_NUMBERS (R_X86_64_max)
diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.dd b/ld/testsuite/ld-x86-64/tlsbindesc.dd
index 5bdb659555f..4587cc751b4 100644
--- a/ld/testsuite/ld-x86-64/tlsbindesc.dd
+++ b/ld/testsuite/ld-x86-64/tlsbindesc.dd
@@ -165,6 +165,55 @@ Disassembly of section .text:
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	c9[ 	]+leave *
  +[0-9a-f]+:	c3[ 	]+ret *
+#  IE against global var
+ +[0-9a-f]+:	d5 48 03 05 ([0-9a-f]{2} ){3}[ 	]+add    0x[0-9a-f]+\(%rip\),%r16 +# [0-9a-f]+ <sG2>
+#				-> R_X86_64_TPOFF64	sG2
+ +[0-9a-f]+:	00 *
+#  IE -> LE against global var defined in exec
+ +[0-9a-f]+:	d5 18 81 c1 60 ff ff[ 	]+add    \$0xf+60,%r17
+#							sg1
+ +[0-9a-f]+:	ff *
+#  IE -> LE against local var
+ +[0-9a-f]+:	d5 18 81 c2 80 ff ff[ 	]+add    \$0xf+80,%r18
+#							sl1
+ +[0-9a-f]+:	ff *
+#  IE -> LE against hidden var
+ +[0-9a-f]+:	d5 18 81 c3 a0 ff ff[ 	]+add    \$0xf+a0,%r19
+#							sh1
+ +[0-9a-f]+:	ff *
+#  Direct access through %fs
+#  IE against global var
+ +[0-9a-f]+:	d5 48 8b 25 ([0-9a-f]{2} ){3}[ 	]+mov    0x[0-9a-f]+\(%rip\),%r20 +# [0-9a-f]+ <sG5>
+#				-> R_X86_64_TPOFF64	sG5
+ +[0-9a-f]+:	00 *
+#  IE->LE against local var
+ +[0-9a-f]+:	d5 18 c7 c5 90 ff ff[ 	]+mov    \$0xf+90,%r21
+#							sl5
+ +[0-9a-f]+:	ff *
+#  IE->LE against hidden var
+ +[0-9a-f]+:	d5 18 c7 c6 b0 ff ff[ 	]+mov    \$0xf+b0,%r22
+ +[0-9a-f]+:	ff *
+#  GD -> IE because variable is not defined in executable
+ +[0-9a-f]+:	d5 48 8b 05 ([0-9a-f]{2} ){3}[ 	]+mov    0x[0-9a-f]+\(%rip\),%r16 +# [0-9a-f]+ <sG1>
+#				-> R_X86_64_TPOFF64	sG1
+ +[0-9a-f]+:	00 *
+#  GD -> IE because variable is not defined in executable where
+#  the variable is referenced through IE too
+ +[0-9a-f]+:	d5 48 8b 0d ([0-9a-f]{2} ){3}[ 	]+mov    0x[0-9a-f]+\(%rip\),%r17 +# [0-9a-f]+ <sG2>
+#				-> R_X86_64_TPOFF64	sG2
+ +[0-9a-f]+:	00 *
+#  GD -> LE with global variable defined in executable
+ +[0-9a-f]+:	d5 18 c7 c2 60 ff ff[ 	]+mov    \$0xf+60,%r18
+#							sg1
+ +[0-9a-f]+:	ff *
+#  GD -> LE with local variable defined in executable
+ +[0-9a-f]+:	d5 18 c7 c3 80 ff ff[ 	]+mov    \$0xf+80,%r19
+#							sl1
+ +[0-9a-f]+:	ff *
+#  GD -> LE with hidden variable defined in executable
+ +[0-9a-f]+:	d5 18 c7 c4 a0 ff ff[ 	]+mov    \$0xf+a0,%r20
+#							sh1
+ +[0-9a-f]+:	ff *
 
 [0-9a-f]+ <_start>:
  +[0-9a-f]+:	55[ 	]+push   %rbp
diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.rd b/ld/testsuite/ld-x86-64/tlsbindesc.rd
index 682c4a066a2..daaea7a5371 100644
--- a/ld/testsuite/ld-x86-64/tlsbindesc.rd
+++ b/ld/testsuite/ld-x86-64/tlsbindesc.rd
@@ -15,12 +15,12 @@ Section Headers:
  +\[[ 0-9]+\] .dynsym +.*
  +\[[ 0-9]+\] .dynstr +.*
  +\[[ 0-9]+\] .rela.dyn +.*
- +\[[ 0-9]+\] .text +PROGBITS +0+401000 0+1000 0+1fd 00 +AX +0 +0 +4096
- +\[[ 0-9]+\] .tdata +PROGBITS +0+6011fd 0+11fd 0+60 00 WAT +0 +0 +1
- +\[[ 0-9]+\] .tbss +NOBITS +0+60125d 0+125d 0+40 00 WAT +0 +0 +1
- +\[[ 0-9]+\] .dynamic +DYNAMIC +0+601260 0+1260 0+100 10 +WA +4 +0 +8
- +\[[ 0-9]+\] .got +PROGBITS +0+601360 0+1360 0+20 08 +WA +0 +0 +8
- +\[[ 0-9]+\] .got.plt +PROGBITS +0+601380 0+1380 0+18 08 +WA +0 +0 +8
+ +\[[ 0-9]+\] .text +PROGBITS +0+401000 0+1000 0+25d 00 +AX +0 +0 +4096
+ +\[[ 0-9]+\] .tdata +PROGBITS +0+60125d 0+125d 0+60 00 WAT +0 +0 +1
+ +\[[ 0-9]+\] .tbss +NOBITS +0+6012bd 0+12bd 0+40 00 WAT +0 +0 +1
+ +\[[ 0-9]+\] .dynamic +DYNAMIC +0+6012c0 0+12c0 0+100 10 +WA +4 +0 +8
+ +\[[ 0-9]+\] .got +PROGBITS +0+6013c0 0+13c0 0+20 08 +WA +0 +0 +8
+ +\[[ 0-9]+\] .got.plt +PROGBITS +0+6013e0 0+13e0 0+18 08 +WA +0 +0 +8
  +\[[ 0-9]+\] .symtab +.*
  +\[[ 0-9]+\] .strtab +.*
  +\[[ 0-9]+\] .shstrtab +.*
@@ -28,7 +28,7 @@ Key to Flags:
 #...
 
 Elf file type is EXEC \(Executable file\)
-Entry point 0x401105
+Entry point 0x401165
 There are [0-9]+ program headers, starting at offset [0-9]+
 
 Program Headers:
@@ -36,10 +36,10 @@ Program Headers:
  +PHDR.*
  +INTERP.*
 .*Requesting program interpreter.*
- +LOAD +0x0+ 0x0+400000 0x0+400000 0x0+11fd 0x0+11fd R E 0x200000
- +LOAD +0x0+11fd 0x0+6011fd 0x0+6011fd 0x0+19b 0x0+19b RW +0x200000
- +DYNAMIC +0x0+1260 0x0+601260 0x0+601260 0x0+100 0x0+100 RW +0x8
- +TLS +0x0+11fd 0x0+6011fd 0x0+6011fd 0x0+60 0x0+a0 R +0x1
+ +LOAD +0x0+ 0x0+400000 0x0+400000 0x0+125d 0x0+125d R E 0x200000
+ +LOAD +0x0+125d 0x0+60125d 0x0+60125d 0x0+19b 0x0+19b RW +0x200000
+ +DYNAMIC +0x0+12c0 0x0+6012c0 0x0+6012c0 0x0+100 0x0+100 RW +0x8
+ +TLS +0x0+125d 0x0+60125d 0x0+60125d 0x0+60 0x0+a0 R +0x1
 
  Section to Segment mapping:
  +Segment Sections...
@@ -52,10 +52,10 @@ Program Headers:
 
 Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+601360 +0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
-0+601368 +0+200000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
-0+601370 +0+300000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
-0+601378 +0+400000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
+0+6013c0 +0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
+0+6013c8 +0+200000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
+0+6013d0 +0+300000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
+0+6013d8 +0+400000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
 
 Symbol table '\.dynsym' contains [0-9]+ entries:
  +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
@@ -88,8 +88,8 @@ Symbol table '\.symtab' contains [0-9]+ entries:
  +[0-9]+: 0+9c +0 +TLS +LOCAL +DEFAULT +8 bl8
 .* FILE +LOCAL +DEFAULT +ABS 
  +[0-9]+: 0+a0 +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_
- +[0-9]+: 0+601260 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
- +[0-9]+: 0+601380 +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: 0+6012c0 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
+ +[0-9]+: 0+6013e0 +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
  +[0-9]+: 0+7c +0 +TLS +GLOBAL +DEFAULT +8 bg8
  +[0-9]+: 0+74 +0 +TLS +GLOBAL +DEFAULT +8 bg6
@@ -104,7 +104,7 @@ Symbol table '\.symtab' contains [0-9]+ entries:
  +[0-9]+: 0+58 +0 +TLS +GLOBAL +HIDDEN +7 sh7
  +[0-9]+: 0+5c +0 +TLS +GLOBAL +HIDDEN +7 sh8
  +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1
- +[0-9]+: 0+401105 +0 +FUNC +GLOBAL +DEFAULT +6 _start
+ +[0-9]+: 0+401165 +0 +FUNC +GLOBAL +DEFAULT +6 _start
  +[0-9]+: 0+4c +0 +TLS +GLOBAL +HIDDEN +7 sh4
  +[0-9]+: 0+78 +0 +TLS +GLOBAL +DEFAULT +8 bg7
  +[0-9]+: 0+50 +0 +TLS +GLOBAL +HIDDEN +7 sh5
diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.s b/ld/testsuite/ld-x86-64/tlsbindesc.s
index cbebf02171d..b80e5f192c0 100644
--- a/ld/testsuite/ld-x86-64/tlsbindesc.s
+++ b/ld/testsuite/ld-x86-64/tlsbindesc.s
@@ -126,3 +126,42 @@ fn2:
 
 	leave
 	ret
+
+	/* IE against global var  */
+	addq	sG2@gottpoff(%rip), %r16
+
+	/* IE -> LE against global var defined in exec */
+	addq	sg1@gottpoff(%rip), %r17
+
+	/* IE -> LE against local var */
+	addq	sl1@gottpoff(%rip), %r18
+
+	/* IE -> LE against hidden var */
+	addq	sh1@gottpoff(%rip), %r19
+
+	/* Direct access through %fs  */
+
+	/* IE against global var  */
+	movq	sG5@gottpoff(%rip), %r20
+
+	/* IE->LE against local var  */
+	movq	sl5@gottpoff(%rip), %r21
+
+	/* IE->LE against hidden var  */
+	movq	sh5@gottpoff(%rip), %r22
+
+	/* GD -> IE because variable is not defined in executable */
+	leaq	sG1@tlsdesc(%rip), %r16
+
+	/* GD -> IE because variable is not defined in executable where
+	   the variable is referenced through IE too */
+	leaq	sG2@tlsdesc(%rip), %r17
+
+	/* GD -> LE with global variable defined in executable */
+	leaq	sg1@tlsdesc(%rip), %r18
+
+	/* GD -> LE with local variable defined in executable */
+	leaq	sl1@tlsdesc(%rip), %r19
+
+	/* GD -> LE with hidden variable defined in executable */
+	leaq	sh1@tlsdesc(%rip), %r20
-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 6/6] Gold: Handle R_X86_64_CODE_4_GOTPC32_TLSDESC/R_X86_64_CODE_4_GOTTPOFF
  2023-09-21 10:11 [PATCH 0/6] [RFC] Support Intel APX EGPR (part II) Cui, Lili
                   ` (4 preceding siblings ...)
  2023-09-21 10:11 ` [PATCH 5/6] For Cui, Lili
@ 2023-09-21 10:11 ` Cui, Lili
  5 siblings, 0 replies; 11+ messages in thread
From: Cui, Lili @ 2023-09-21 10:11 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant, hjl-tools

From: hjl-tools <hjl.tools@gmail.com>

Handle R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC.
Convert

	add	name@gottpoff(%rip), %reg
	mov	name@gottpoff(%rip), %reg

to

	add	$name@tpoff, %reg
	mov	$name@tpoff, %reg

and

	lea	name@tlsdesc(%rip), %reg

to

	mov     $name@tpoff, %reg
	mov	name@gottpoff(%rip), %reg

if the instruction is encoded with the REX2 prefix when possible.

elfcpp/

	* x86_64.h (R_X86_64_CODE_4_GOTTPOFF): New.
	(R_X86_64_CODE_4_GOTPC32_TLSDESC): Likewise.

gold/

	* x86_64.cc (Target_x86_64::optimize_tls_reloc): Handle
	R_X86_64_CODE_4_GOTPC32_TLSDESC and R_X86_64_CODE_4_GOTTPOFF.
	(Target_x86_64::Scan::get_reference_flags): Likewise.
	(Target_x86_64::Scan::local): Likewise.
	(Target_x86_64::Scan::global): Likewise.
	(Target_x86_64::Relocate::relocate): Likewise.
	(Target_x86_64::Relocate::relocate_tls): Likewise.
	(Target_x86_64::Relocate::tls_desc_gd_to_ie): Handle
	R_X86_64_CODE_4_GOTPC32_TLSDESC.
	(Target_x86_64::Relocate::tls_desc_gd_to_le): Likewise.
	(Target_x86_64::Relocate::tls_ie_to_le): Handle.
	R_X86_64_CODE_4_GOTTPOFF.
	* testsuite/Makefile.am: Add x86_64_ie_to_le test.
	* testsuite/Makefile.in: Regenerated.
	* testsuite/x86_64_gd_to_le.s: Add R_X86_64_CODE_4_GOTPC32_TLSDESC
	test.
	* testsuite/x86_64_gd_to_le.sh: Check GDesc to LE conversion.
	* testsuite/x86_64_ie_to_le.s: New file.
	* testsuite/x86_64_ie_to_le.sh: Likewise.
---
 elfcpp/x86_64.h                   |   8 ++
 gold/testsuite/Makefile.am        |  11 +++
 gold/testsuite/Makefile.in        |  17 ++++
 gold/testsuite/x86_64_gd_to_le.s  |   1 +
 gold/testsuite/x86_64_gd_to_le.sh |   1 +
 gold/testsuite/x86_64_ie_to_le.s  |  17 ++++
 gold/testsuite/x86_64_ie_to_le.sh |  29 ++++++
 gold/x86_64.cc                    | 156 +++++++++++++++++++++++-------
 8 files changed, 203 insertions(+), 37 deletions(-)
 create mode 100644 gold/testsuite/x86_64_ie_to_le.s
 create mode 100755 gold/testsuite/x86_64_ie_to_le.sh

diff --git a/elfcpp/x86_64.h b/elfcpp/x86_64.h
index 97a87ae424d..da6ac191734 100644
--- a/elfcpp/x86_64.h
+++ b/elfcpp/x86_64.h
@@ -102,6 +102,14 @@ enum
 				  // GOT if the instruction starts at 4
 				  // bytes before the relocation offset,
 				  // relaxable.
+  R_X86_64_CODE_4_GOTTPOFF = 44,  // 32 bit signed PC relative offset to
+				  // GOT entry for IE symbol if the
+				  // instruction starts at 4 bytes before
+				  // the relocation offset.
+  R_X86_64_CODE_4_GOTPC32_TLSDESC = 45, // 32-bit PC relative to TLS
+					// descriptor in GOT if the
+					// instruction starts at 4 bytes
+					// before the relocation offset.
   // GNU vtable garbage collection extensions.
   R_X86_64_GNU_VTINHERIT = 250,
   R_X86_64_GNU_VTENTRY = 251
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
index df9405c1aac..0685e917d0e 100644
--- a/gold/testsuite/Makefile.am
+++ b/gold/testsuite/Makefile.am
@@ -1244,6 +1244,17 @@ x86_64_gd_to_le: x86_64_gd_to_le.o gcctestdir/ld
 x86_64_gd_to_le.stdout: x86_64_gd_to_le
 	$(TEST_OBJDUMP) -dw $< > $@
 
+check_SCRIPTS += x86_64_ie_to_le.sh
+check_DATA += x86_64_ie_to_le.stdout
+MOSTLYCLEANFILES += x86_64_ie_to_le
+
+x86_64_ie_to_le.o: x86_64_ie_to_le.s
+	$(TEST_AS) --64 -o $@ $<
+x86_64_ie_to_le: x86_64_ie_to_le.o gcctestdir/ld
+	gcctestdir/ld -o $@ $<
+x86_64_ie_to_le.stdout: x86_64_ie_to_le
+	$(TEST_OBJDUMP) -dw $< > $@
+
 check_SCRIPTS += x86_64_overflow_pc32.sh
 check_DATA += x86_64_overflow_pc32.err
 MOSTLYCLEANFILES += x86_64_overflow_pc32.err
diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in
index fb0eb12553b..06be15051e5 100644
--- a/gold/testsuite/Makefile.in
+++ b/gold/testsuite/Makefile.in
@@ -296,6 +296,7 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_31 = x86_64_mov_to_lea.sh \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_indirect_call_to_direct.sh \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_gd_to_le.sh \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_ie_to_le.sh \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_overflow_pc32.sh \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x32_overflow_pc32.sh \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	pr23016_1.sh \
@@ -319,6 +320,7 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_indirect_call_to_direct1.stdout \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_indirect_jump_to_direct1.stdout \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_gd_to_le.stdout \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_ie_to_le.stdout \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_overflow_pc32.err \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x32_overflow_pc32.err \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	pr23016_1.stdout \
@@ -343,6 +345,7 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_indirect_call_to_direct1 \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_indirect_jump_to_direct1 \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_gd_to_le \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_ie_to_le \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x86_64_overflow_pc32.err \
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	x32_overflow_pc32.err
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_34 = pr17704a_test
@@ -5736,6 +5739,13 @@ x86_64_gd_to_le.sh.log: x86_64_gd_to_le.sh
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+x86_64_ie_to_le.sh.log: x86_64_ie_to_le.sh
+	@p='x86_64_ie_to_le.sh'; \
+	b='x86_64_ie_to_le.sh'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 x86_64_overflow_pc32.sh.log: x86_64_overflow_pc32.sh
 	@p='x86_64_overflow_pc32.sh'; \
 	b='x86_64_overflow_pc32.sh'; \
@@ -8474,6 +8484,13 @@ uninstall-am:
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -o $@ $<
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_gd_to_le.stdout: x86_64_gd_to_le
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_OBJDUMP) -dw $< > $@
+
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_ie_to_le.o: x86_64_ie_to_le.s
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AS) --64 -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_ie_to_le: x86_64_ie_to_le.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_ie_to_le.stdout: x86_64_ie_to_le
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_OBJDUMP) -dw $< > $@
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_overflow_pc32.o: x86_64_overflow_pc32.s
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AS) -o $@ $<
 @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@x86_64_overflow_pc32.err: x86_64_overflow_pc32.o gcctestdir/ld
diff --git a/gold/testsuite/x86_64_gd_to_le.s b/gold/testsuite/x86_64_gd_to_le.s
index dcdd303184d..79f9c48f526 100644
--- a/gold/testsuite/x86_64_gd_to_le.s
+++ b/gold/testsuite/x86_64_gd_to_le.s
@@ -7,6 +7,7 @@ _start:
 	subq	$8, %rsp
 	.cfi_def_cfa_offset 16
 	leaq	foo@TLSDESC(%rip), %r9
+	leaq	foo@TLSDESC(%rip), %r29
 	movq	%r9, %rax
 	call	*foo@TLSCALL(%rax)
 	addq	%fs:0, %rax
diff --git a/gold/testsuite/x86_64_gd_to_le.sh b/gold/testsuite/x86_64_gd_to_le.sh
index 82a6f985b88..5b0a043e0a8 100755
--- a/gold/testsuite/x86_64_gd_to_le.sh
+++ b/gold/testsuite/x86_64_gd_to_le.sh
@@ -24,3 +24,4 @@
 set -e
 
 grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%r9" x86_64_gd_to_le.stdout
+grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%r29" x86_64_gd_to_le.stdout
diff --git a/gold/testsuite/x86_64_ie_to_le.s b/gold/testsuite/x86_64_ie_to_le.s
new file mode 100644
index 00000000000..c5752068866
--- /dev/null
+++ b/gold/testsuite/x86_64_ie_to_le.s
@@ -0,0 +1,17 @@
+	.text
+	.p2align 4
+	.globl	_start
+	.type	_start, @function
+_start:
+	addq	foo@gottpoff(%rip), %r12
+	movq	foo@gottpoff(%rip), %rax
+	addq	foo@gottpoff(%rip), %r16
+	movq	foo@gottpoff(%rip), %r20
+	.size	_start, .-_start
+	.section	.tdata,"awT",@progbits
+	.align 4
+	.type	foo, @object
+	.size	foo, 4
+foo:
+	.long	30
+	.section	.note.GNU-stack,"",@progbits
diff --git a/gold/testsuite/x86_64_ie_to_le.sh b/gold/testsuite/x86_64_ie_to_le.sh
new file mode 100755
index 00000000000..417f0bfc636
--- /dev/null
+++ b/gold/testsuite/x86_64_ie_to_le.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# x86_64_ie_to_le.sh -- a test for IE -> LE conversion.
+
+# Copyright (C) 2023 Free Software Foundation, Inc.
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+set -e
+
+grep -q "add[ \t]\+\$0x[a-f0-9]\+,%r12" x86_64_ie_to_le.stdout
+grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%rax" x86_64_ie_to_le.stdout
+grep -q "add[ \t]\+\$0x[a-f0-9]\+,%r16" x86_64_ie_to_le.stdout
+grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%r20" x86_64_ie_to_le.stdout
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
index b7be9bf0d48..bc4260db5f3 100644
--- a/gold/x86_64.cc
+++ b/gold/x86_64.cc
@@ -1110,7 +1110,8 @@ class Target_x86_64 : public Sized_target<size, false>
   // Adjust TLS relocation type based on the options and whether this
   // is a local symbol.
   static tls::Tls_optimization
-  optimize_tls_reloc(bool is_final, int r_type);
+  optimize_tls_reloc(bool is_final, int r_type, size_t r_offset,
+		     const unsigned char* reloc_view);
 
   // Get the GOT section, creating it if necessary.
   Output_data_got<64, false>*
@@ -2878,11 +2879,13 @@ Target_x86_64<size>::got_mod_index_entry(Symbol_table* symtab, Layout* layout,
 
 // Optimize the TLS relocation type based on what we know about the
 // symbol.  IS_FINAL is true if the final address of this symbol is
-// known at link time.
+// known at link time.  RELOC_VIEW points to the relocation offset.
 
 template<int size>
 tls::Tls_optimization
-Target_x86_64<size>::optimize_tls_reloc(bool is_final, int r_type)
+Target_x86_64<size>::optimize_tls_reloc(bool is_final, int r_type,
+					size_t r_offset,
+					const unsigned char* reloc_view)
 {
   // If we are generating a shared library, then we can't do anything
   // in the linker.
@@ -2891,6 +2894,10 @@ Target_x86_64<size>::optimize_tls_reloc(bool is_final, int r_type)
 
   switch (r_type)
     {
+    case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
+      if (r_offset <= 4 || *(reloc_view - 4) != 0xd5)
+	return tls::TLSOPT_NONE;
+      // Fall through.
     case elfcpp::R_X86_64_TLSGD:
     case elfcpp::R_X86_64_GOTPC32_TLSDESC:
     case elfcpp::R_X86_64_TLSDESC_CALL:
@@ -2913,6 +2920,10 @@ Target_x86_64<size>::optimize_tls_reloc(bool is_final, int r_type)
       // Another Local-Dynamic reloc.
       return tls::TLSOPT_TO_LE;
 
+    case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
+      if (r_offset <= 4 || *(reloc_view - 4) != 0xd5)
+	return tls::TLSOPT_NONE;
+      // Fall through.
     case elfcpp::R_X86_64_GOTTPOFF:
       // These are Initial-Exec relocs which get the thread offset
       // from the GOT.  If we know that we are linking against the
@@ -2979,11 +2990,13 @@ Target_x86_64<size>::Scan::get_reference_flags(unsigned int r_type)
 
     case elfcpp::R_X86_64_TLSGD:            // Global-dynamic
     case elfcpp::R_X86_64_GOTPC32_TLSDESC:  // Global-dynamic (from ~oliva url)
+    case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
     case elfcpp::R_X86_64_TLSDESC_CALL:
     case elfcpp::R_X86_64_TLSLD:            // Local-dynamic
     case elfcpp::R_X86_64_DTPOFF32:
     case elfcpp::R_X86_64_DTPOFF64:
     case elfcpp::R_X86_64_GOTTPOFF:         // Initial-exec
+    case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
     case elfcpp::R_X86_64_TPOFF32:          // Local-exec
       return Symbol::TLS_REF;
 
@@ -3148,6 +3161,8 @@ Target_x86_64<size>::Scan::local(Symbol_table* symtab,
       target->make_local_ifunc_plt_entry(symtab, layout, object, r_sym);
     }
 
+  const unsigned char* reloc_view = NULL;
+
   switch (r_type)
     {
     case elfcpp::R_X86_64_NONE:
@@ -3345,6 +3360,13 @@ need_got:
       break;
 
       // These are initial tls relocs, which are expected when linking
+    case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
+    case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
+      {
+	section_size_type stype;
+	reloc_view = object->section_contents(data_shndx, &stype, true);
+      }
+      // Fall through.
     case elfcpp::R_X86_64_TLSGD:            // Global-dynamic
     case elfcpp::R_X86_64_GOTPC32_TLSDESC:  // Global-dynamic (from ~oliva url)
     case elfcpp::R_X86_64_TLSDESC_CALL:
@@ -3355,9 +3377,11 @@ need_got:
     case elfcpp::R_X86_64_TPOFF32:          // Local-exec
       {
 	bool output_is_shared = parameters->options().shared();
+	size_t r_offset = reloc.get_r_offset();
 	const tls::Tls_optimization optimized_type
 	    = Target_x86_64<size>::optimize_tls_reloc(!output_is_shared,
-						      r_type);
+						      r_type, r_offset,
+						      reloc_view + r_offset);
 	switch (r_type)
 	  {
 	  case elfcpp::R_X86_64_TLSGD:       // General-dynamic
@@ -3386,6 +3410,7 @@ need_got:
 	    break;
 
 	  case elfcpp::R_X86_64_GOTPC32_TLSDESC:
+	  case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
 	    target->define_tls_base_symbol(symtab, layout);
 	    if (optimized_type == tls::TLSOPT_NONE)
 	      {
@@ -3438,6 +3463,7 @@ need_got:
 	    break;
 
 	  case elfcpp::R_X86_64_GOTTPOFF:    // Initial-exec
+	  case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
 	    layout->set_has_static_tls();
 	    if (optimized_type == tls::TLSOPT_NONE)
 	      {
@@ -3615,6 +3641,8 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
       && this->reloc_needs_plt_for_ifunc(object, r_type))
     target->make_plt_entry(symtab, layout, gsym);
 
+  const unsigned char *reloc_view = NULL;
+
   switch (r_type)
     {
     case elfcpp::R_X86_64_NONE:
@@ -3872,6 +3900,13 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
       break;
 
       // These are initial tls relocs, which are expected for global()
+    case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
+    case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
+      {
+	section_size_type stype;
+	reloc_view = object->section_contents(data_shndx, &stype, true);
+      }
+      // Fall through.
     case elfcpp::R_X86_64_TLSGD:            // Global-dynamic
     case elfcpp::R_X86_64_GOTPC32_TLSDESC:  // Global-dynamic (from ~oliva url)
     case elfcpp::R_X86_64_TLSDESC_CALL:
@@ -3884,11 +3919,15 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
 	// For the Initial-Exec model, we can treat undef symbols as final
 	// when building an executable.
 	const bool is_final = (gsym->final_value_is_known() ||
-			       (r_type == elfcpp::R_X86_64_GOTTPOFF &&
+			       ((r_type == elfcpp::R_X86_64_GOTTPOFF ||
+				 r_type == elfcpp::R_X86_64_CODE_4_GOTTPOFF) &&
 			        gsym->is_undefined() &&
 				parameters->options().output_is_executable()));
+	size_t r_offset = reloc.get_r_offset();
 	const tls::Tls_optimization optimized_type
-	    = Target_x86_64<size>::optimize_tls_reloc(is_final, r_type);
+	    = Target_x86_64<size>::optimize_tls_reloc(is_final, r_type,
+						      r_offset,
+						      reloc_view + r_offset);
 	switch (r_type)
 	  {
 	  case elfcpp::R_X86_64_TLSGD:       // General-dynamic
@@ -3917,6 +3956,7 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
 	    break;
 
 	  case elfcpp::R_X86_64_GOTPC32_TLSDESC:
+	  case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
 	    target->define_tls_base_symbol(symtab, layout);
 	    if (optimized_type == tls::TLSOPT_NONE)
 	      {
@@ -3965,6 +4005,7 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
 	    break;
 
 	  case elfcpp::R_X86_64_GOTTPOFF:    // Initial-exec
+	  case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
 	    layout->set_has_static_tls();
 	    if (optimized_type == tls::TLSOPT_NONE)
 	      {
@@ -4560,11 +4601,13 @@ Target_x86_64<size>::Relocate::relocate(
       // These are initial tls relocs, which are expected when linking
     case elfcpp::R_X86_64_TLSGD:            // Global-dynamic
     case elfcpp::R_X86_64_GOTPC32_TLSDESC:  // Global-dynamic (from ~oliva url)
+    case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
     case elfcpp::R_X86_64_TLSDESC_CALL:
     case elfcpp::R_X86_64_TLSLD:            // Local-dynamic
     case elfcpp::R_X86_64_DTPOFF32:
     case elfcpp::R_X86_64_DTPOFF64:
     case elfcpp::R_X86_64_GOTTPOFF:         // Initial-exec
+    case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
     case elfcpp::R_X86_64_TPOFF32:          // Local-exec
       this->relocate_tls(relinfo, target, relnum, rela, r_type, gsym, psymval,
 			 view, address, view_size);
@@ -4636,8 +4679,10 @@ Target_x86_64<size>::Relocate::relocate_tls(
   const bool is_final = (gsym == NULL
 			 ? !parameters->options().shared()
 			 : gsym->final_value_is_known());
+  size_t r_offset = rela.get_r_offset();
   tls::Tls_optimization optimized_type
-      = Target_x86_64<size>::optimize_tls_reloc(is_final, r_type);
+      = Target_x86_64<size>::optimize_tls_reloc(is_final, r_type,
+						r_offset, view);
   switch (r_type)
     {
     case elfcpp::R_X86_64_TLSGD:            // Global-dynamic
@@ -4704,6 +4749,7 @@ Target_x86_64<size>::Relocate::relocate_tls(
       break;
 
     case elfcpp::R_X86_64_GOTPC32_TLSDESC:  // Global-dynamic (from ~oliva url)
+    case elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC:
     case elfcpp::R_X86_64_TLSDESC_CALL:
       if (!is_executable && optimized_type == tls::TLSOPT_TO_LE)
 	{
@@ -4729,7 +4775,8 @@ Target_x86_64<size>::Relocate::relocate_tls(
 				   ? GOT_TYPE_TLS_OFFSET
 				   : GOT_TYPE_TLS_DESC);
 	  unsigned int got_offset = 0;
-	  if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC
+	  if ((r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC
+	       || r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC)
 	      && optimized_type == tls::TLSOPT_NONE)
 	    {
 	      // We created GOT entries in the .got.tlsdesc portion of
@@ -4760,7 +4807,8 @@ Target_x86_64<size>::Relocate::relocate_tls(
 	    }
 	  else if (optimized_type == tls::TLSOPT_NONE)
 	    {
-	      if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC)
+	      if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC
+		  || r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC)
 		{
 		  // Relocate the field with the offset of the pair of GOT
 		  // entries.
@@ -4845,6 +4893,7 @@ Target_x86_64<size>::Relocate::relocate_tls(
       break;
 
     case elfcpp::R_X86_64_GOTTPOFF:         // Initial-exec
+    case elfcpp::R_X86_64_CODE_4_GOTTPOFF:
       if (gsym != NULL
 	  && gsym->is_undefined()
 	  && parameters->options().output_is_executable())
@@ -5051,7 +5100,8 @@ Target_x86_64<size>::Relocate::tls_desc_gd_to_ie(
     typename elfcpp::Elf_types<size>::Elf_Addr address,
     section_size_type view_size)
 {
-  if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC)
+  if (r_type == elfcpp::R_X86_64_GOTPC32_TLSDESC
+      || r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC)
     {
       // LP64: leaq foo@tlsdesc(%rip), %rax
       //       ==> movq foo@gottpoff(%rip), %rax
@@ -5060,7 +5110,8 @@ Target_x86_64<size>::Relocate::tls_desc_gd_to_ie(
       tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, -3);
       tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, 4);
       tls::check_tls(relinfo, relnum, rela.get_r_offset(),
-		     (((view[-3] & 0xfb) == 0x48
+		     ((r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC
+		       || (view[-3] & 0xfb) == 0x48
 		       || (size == 32 && (view[-3] & 0xfb) == 0x40))
 		      && view[-2] == 0x8d
 		      && (view[-1] & 0xc7) == 0x05));
@@ -5132,6 +5183,22 @@ Target_x86_64<size>::Relocate::tls_desc_gd_to_le(
       value -= tls_segment->memsz();
       Relocate_functions<size, false>::rela32(view, value, 0);
     }
+  else if (r_type == elfcpp::R_X86_64_CODE_4_GOTPC32_TLSDESC)
+    {
+      // REX2: lea foo@tlsdesc(%rip), %reg
+      //       ==> mov foo@tpoff, %reg
+      tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, -3);
+      tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, 4);
+      tls::check_tls(relinfo, relnum, rela.get_r_offset(),
+		     (view[-2] == 0x8d
+		      && (view[-1] & 0xc7) == 0x05));
+      unsigned char rex2_mask = 4 | 4 << 4;
+      view[-3] = (view[-3] & ~rex2_mask) | ((view[-3] & rex2_mask) >> 2);
+      view[-2] = 0xc7;
+      view[-1] = 0xc0 | ((view[-1] >> 3) & 7);
+      value -= tls_segment->memsz();
+      Relocate_functions<size, false>::rela32(view, value, 0);
+    }
   else
     {
       // LP64: call *foo@tlscall(%rax)
@@ -5231,7 +5298,7 @@ Target_x86_64<size>::Relocate::tls_ie_to_le(
     size_t relnum,
     Output_segment* tls_segment,
     const elfcpp::Rela<size, false>& rela,
-    unsigned int,
+    unsigned int r_type,
     typename elfcpp::Elf_types<size>::Elf_Addr value,
     unsigned char* view,
     section_size_type view_size)
@@ -5250,35 +5317,50 @@ Target_x86_64<size>::Relocate::tls_ie_to_le(
   unsigned char op3 = view[-1];
   unsigned char reg = op3 >> 3;
 
-  if (op2 == 0x8b)
+  if (r_type == elfcpp::R_X86_64_GOTTPOFF)
     {
-      // movq
-      if (op1 == 0x4c)
-	view[-3] = 0x49;
-      else if (size == 32 && op1 == 0x44)
-	view[-3] = 0x41;
-      view[-2] = 0xc7;
-      view[-1] = 0xc0 | reg;
-    }
-  else if (reg == 4)
-    {
-      // Special handling for %rsp.
-      if (op1 == 0x4c)
-	view[-3] = 0x49;
-      else if (size == 32 && op1 == 0x44)
-	view[-3] = 0x41;
-      view[-2] = 0x81;
-      view[-1] = 0xc0 | reg;
+      if (op2 == 0x8b)
+	{
+	  // movq
+	  if (op1 == 0x4c)
+	    view[-3] = 0x49;
+	  else if (size == 32 && op1 == 0x44)
+	    view[-3] = 0x41;
+	  view[-2] = 0xc7;
+	  view[-1] = 0xc0 | reg;
+	}
+      else if (reg == 4)
+	{
+	  // Special handling for %rsp.
+	  if (op1 == 0x4c)
+	    view[-3] = 0x49;
+	  else if (size == 32 && op1 == 0x44)
+	    view[-3] = 0x41;
+	  view[-2] = 0x81;
+	  view[-1] = 0xc0 | reg;
+	}
+      else
+	{
+	  // addq
+	  if (op1 == 0x4c)
+	    view[-3] = 0x4d;
+	  else if (size == 32 && op1 == 0x44)
+	    view[-3] = 0x45;
+	  view[-2] = 0x8d;
+	  view[-1] = 0x80 | reg | (reg << 3);
+	}
     }
   else
     {
-      // addq
-      if (op1 == 0x4c)
-	view[-3] = 0x4d;
-      else if (size == 32 && op1 == 0x44)
-	view[-3] = 0x45;
-      view[-2] = 0x8d;
-      view[-1] = 0x80 | reg | (reg << 3);
+      if (op2 == 0x8b)
+	op2 = 0xc7;
+      else
+	op2 = 0x81;
+
+      unsigned char rex2_mask = 4 | 4 << 4;
+      view[-3] = (view[-3] & ~rex2_mask) | ((view[-3] & rex2_mask) >> 2);
+      view[-2] = op2;
+      view[-1] = 0xc0 | reg;
     }
 
   if (tls_segment != NULL)
-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32.
  2023-09-21 10:11 ` [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32 Cui, Lili
@ 2023-09-22  9:13   ` Jan Beulich
  2023-09-25  1:35     ` Hu, Lin1
  2023-09-28 14:36   ` Jan Beulich
  1 sibling, 1 reply; 11+ messages in thread
From: Jan Beulich @ 2023-09-22  9:13 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, ccoutant, Hu, Lin1, binutils

On 21.09.2023 12:11, Cui, Lili wrote:
> From: "Hu, Lin1" <lin1.hu@intel.com>
> 
> gas/ChangeLog:
> 
> 	* config/tc-i386.c (match_template): Support D for APX_F insns
> 	with 2 operands.

Without having looked at the full patch yet - this change hardly belongs
here.

Jan

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32.
  2023-09-22  9:13   ` Jan Beulich
@ 2023-09-25  1:35     ` Hu, Lin1
  0 siblings, 0 replies; 11+ messages in thread
From: Hu, Lin1 @ 2023-09-25  1:35 UTC (permalink / raw)
  To: Beulich, Jan, Cui, Lili; +Cc: Lu, Hongjiu, ccoutant, binutils

Indeed, it belong to the previous apx patch. But this commit just got done, so followed this patch out.

BRs,
Lin
-----Original Message-----
From: Jan Beulich <jbeulich@suse.com> 
Sent: Friday, September 22, 2023 5:13 PM
To: Cui, Lili <lili.cui@intel.com>
Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; ccoutant@gmail.com; Hu, Lin1 <lin1.hu@intel.com>; binutils@sourceware.org
Subject: Re: [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32.

On 21.09.2023 12:11, Cui, Lili wrote:
> From: "Hu, Lin1" <lin1.hu@intel.com>
> 
> gas/ChangeLog:
> 
> 	* config/tc-i386.c (match_template): Support D for APX_F insns
> 	with 2 operands.

Without having looked at the full patch yet - this change hardly belongs here.

Jan

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32.
  2023-09-21 10:11 ` [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32 Cui, Lili
  2023-09-22  9:13   ` Jan Beulich
@ 2023-09-28 14:36   ` Jan Beulich
  1 sibling, 0 replies; 11+ messages in thread
From: Jan Beulich @ 2023-09-28 14:36 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, ccoutant, Hu, Lin1, binutils

On 21.09.2023 12:11, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -7581,6 +7581,8 @@ match_template (char mnem_suffix)
>  		}
>  	      else if (t->opcode_space != SPACE_BASE
>  		       && !t->opcode_modifier.nf
> +		       && (t->opcode_space != SPACE_EVEXMAP4
> +			   || t->mnem_off == MN_movbe)
>  		       && (t->opcode_space != SPACE_0F
>  			   /* MOV to/from CR/DR/TR, as an exception, follow
>  			      the base opcode space encoding model.  */

So this is along the lines of the change that I would have expected earlier
in the other series, and which I also expect renders unnecessary the .nf
check here. I'm having a hard time seeing why it lives here.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx_f-evex.s
> @@ -0,0 +1,1180 @@
> +# Check 64bit APX_F instructions with evex pseudo prefix
> +
> +	.text
> +_start:
> +	{evex}	aadd	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX

Once again earlier comments apply throughout this file.

> +	{evex}	aadd	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aand	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aand	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adc	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcx	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcx	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcx	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adcx	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	addb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	addw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	addl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	addq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	add	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adox	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adox	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adox	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	adox	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesdec128kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesdec256kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesdecwide128kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesdecwide256kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesenc128kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesenc256kl	0x123(%r8,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesencwide128kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aesencwide256kl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	$0x7b,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	$0x7b,%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	$0x7b,%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	$0x7b,%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andb	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andw	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andl	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andq	$0x7b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r15w,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r8b,%dl	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	%r8b,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	and	0x123(%r8,%rax,4),%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andn	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andn	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andn	0x123(%r8,%rax,4),%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	andn	0x123(%r8,%rax,4),%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aor	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	aor	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	axor	%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	axor	%r15d,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bextr	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bextr	%r15,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bextr	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bextr	%r15d,0x123(%r8,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsi	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsi	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsi	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsi	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsmsk	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsmsk	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsmsk	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsmsk	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsr	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsr	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsr	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	blsr	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bzhi	%r15,%r15,%r11	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bzhi	%r15,0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bzhi	%r15d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	bzhi	%r15d,0x123(%r8,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpbexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpbexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpbxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpbxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmplexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmplexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmplxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmplxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnbexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnbexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnbxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnbxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnlexadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnlexadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnlxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnlxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnoxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnoxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnpxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnpxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnsxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnsxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnzxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpnzxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpoxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpoxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmppxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmppxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpsxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpsxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpzxadd	%r15,%r15,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	cmpzxadd	%r15d,%edx,0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	dec	%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	dec	%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	dec	%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	dec	%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	decb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	decw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	decl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	decq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	div	%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	div	%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	div	%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	div	%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	divb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	divw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	divl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	divq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	encodekey128	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	encodekey256	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	enqcmd	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	enqcmd	0x123(%r8d,%eax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	enqcmds	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	enqcmds	0x123(%r8d,%eax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idiv	%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idiv	%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idiv	%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idiv	%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idivb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idivw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idivl	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	idivq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	%r15,%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	%r15d,%edx	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	%r15w,%ax	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	%r8b	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imulb	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imulw	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imull	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	0x123(%r8,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	0x123(%r8,%rax,4),%r15d	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imul	0x123(%r8,%rax,4),%r15w	 #APX_F OPC_EVEX_EVEX
> +	{evex}	imulq	0x123(%r8,%rax,4)	 #APX_F OPC_EVEX_EVEX

Again no IMUL by immediate (and this time also missing from the Intel
syntax section)?

> --- a/opcodes/i386-dis-evex-len.h
> +++ b/opcodes/i386-dis-evex-len.h
> @@ -64,7 +64,7 @@ static const struct dis386 evex_len_table[][3] = {
>  
>    /* EVEX_LEN_0F38F2 */
>    {
> -    { "%XNandnS",		{ Gdq, VexGdq, Edq }, 0 },
> +    { "%XE%XNandnS",		{ Gdq, VexGdq, Edq }, 0 },
>    },

Why %XE when there already is %XN? (You add this in a few more cases,
but not everywhere, and it's unclear what the underlying pattern is.)
Imo the handling of %XN, when it doesn't emit {nf}, should simply fall
through (or goto) to %XE handling.

As to the further additions of %XE, same request as before: Please
introduce the final way right in the patch adding those, rather than
playing with things again a 2nd time. Not doing so may be necessary in
a few cases (where things intermediately wouldn't work right if put
into final shape right away), but I don't think this is one of them.

Jan

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/6] Disable pseudo prefix {rex2} for illegal instructions.
  2023-09-21 10:11 ` [PATCH 2/6] Disable pseudo prefix {rex2} for illegal instructions Cui, Lili
@ 2023-09-28 14:53   ` Jan Beulich
  0 siblings, 0 replies; 11+ messages in thread
From: Jan Beulich @ 2023-09-28 14:53 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, ccoutant, binutils

On 21.09.2023 12:11, Cui, Lili wrote:
> All opcodes listed map0 0x4*/0x7*/0xa* and map0 0x3*/0x8*
> are reserved under REX2 and triggers #UD when prefixed with REX2

For the latter I guess you mean map1, and then yes, this matches what the
doc says, but I still wonder: There are more ModR/M-less insns, for all
of which imo REX2 would likely want to be invalid. IOW - is this really
(going to remain) a strictly opcode-row-based constraint?

In any event, considering that you already made i386-gen generate a fair
number of these attributes, can't it take care of the opcode rows here as
well?

> --- a/gas/testsuite/gas/i386/x86-64-pseudos-bad.s
> +++ b/gas/testsuite/gas/i386/x86-64-pseudos-bad.s
> @@ -5,3 +5,45 @@ pseudos:
>  	{rex} vmovaps %xmm7,%xmm2
>  	{rex} vmovaps %xmm17,%xmm2
>  	{rex} rorx $7,%eax,%ebx
> +
> +	#All opcodes in the row 0xa* prefixed REX2 are illegal.
> +	{rex2} mov    0x90909090,%al
> +	{rex2} movabs 0x1,%al
> +	{rex2} cmpsb  %es:(%edi),%ds:(%esi)
> +	{rex2} lodsb
> +	{rex2} lods   %ds:(%esi),%al
> +	{rex2} lodsb   (%esi)
> +	{rex2} movsb
> +	{rex2} movsb   (%esi), (%edi)
> +	{rex2} scasl
> +	{rex2} scas   %es:(%edi),%eax
> +	{rex2} scasb   (%edi)
> +	{rex2} stosb
> +	{rex2} stosb   (%edi)
> +	{rex2} stos   %eax,%es:(%edi)
> +
> +	#All opcodes in the row 0x7* prefixed REX2 are illegal.
> +	{rex2} jo     .+2-0x70
> +	{rex2} jno    .+2-0x70
> +	{rex2} jb     .+2-0x70
> +	{rex2} jae    .+2-0x70
> +	{rex2} je     .+2-0x70
> +	{rex2} jne    .+2-0x70
> +	{rex2} jbe    .+2-0x70
> +	{rex2} ja     .+2-0x70
> +	{rex2} js     .+2-0x70
> +	{rex2} jns    .+2-0x70
> +	{rex2} jp     .+2-0x70
> +	{rex2} jnp    .+2-0x70
> +	{rex2} jl     .+2-0x70
> +	{rex2} jge    .+2-0x70
> +	{rex2} jle    .+2-0x70
> +	{rex2} jg     .+2-0x70
> +
> +	#All opcodes in the row 0xf3* prefixed REX2 are illegal.

0xf3 is a REP prefix. Please avoid the addition os misleading comments.

Also mention of map1 row 0x8 is missing (these being the 32-disp Jcc,
they won't need separate testing, but they want mentioning).

> --- a/gas/testsuite/gas/i386/x86-64-pseudos.d
> +++ b/gas/testsuite/gas/i386/x86-64-pseudos.d
> @@ -448,7 +448,6 @@ Disassembly of section .text:
>   +[a-f0-9]+:	41 0f 38 01 00       	phaddw \(%r8\),%mm0
>   +[a-f0-9]+:	88 c4                	mov    %al,%ah
>   +[a-f0-9]+:	d5 00 d3 e0          	{rex2} shl %cl,%eax
> - +[a-f0-9]+:	d5 00 a0 01 00 00 00 00 00 00 00 	{rex2} movabs 0x1,%al
>   +[a-f0-9]+:	d5 00 38 ca          	{rex2} cmp %cl,%dl
>   +[a-f0-9]+:	d5 00 b3 01          	{rex2} mov \$(0x)?1,%bl
>   +[a-f0-9]+:	d5 00 89 c3          	{rex2} mov %eax,%ebx
> --- a/gas/testsuite/gas/i386/x86-64-pseudos.s
> +++ b/gas/testsuite/gas/i386/x86-64-pseudos.s
> @@ -405,7 +405,6 @@ _start:
>  	{rex} phaddw (%r8),%mm0
>  	{rex2} mov %al,%ah
>  	{rex2} shl %cl, %eax
> -	{rex2} movabs 1, %al
>  	{rex2} cmp %cl, %dl
>  	{rex2} mov $1, %bl
>  	{rex2} movl %eax,%ebx

If this one insn is wrong to have here, why was it put here in the first place?

Jan

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-09-28 14:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-21 10:11 [PATCH 0/6] [RFC] Support Intel APX EGPR (part II) Cui, Lili
2023-09-21 10:11 ` [PATCH 1/6] Support {evex} pseudo prefix for decode evex promoted insns without egpr32 Cui, Lili
2023-09-22  9:13   ` Jan Beulich
2023-09-25  1:35     ` Hu, Lin1
2023-09-28 14:36   ` Jan Beulich
2023-09-21 10:11 ` [PATCH 2/6] Disable pseudo prefix {rex2} for illegal instructions Cui, Lili
2023-09-28 14:53   ` Jan Beulich
2023-09-21 10:11 ` [PATCH 3/6] x86-64: Add R_X86_64_CODE_4_GOTPCRELX Cui, Lili
2023-09-21 10:11 ` [PATCH 4/6] gold: Handle R_X86_64_CODE_4_GOTPCRELX Cui, Lili
2023-09-21 10:11 ` [PATCH 5/6] For Cui, Lili
2023-09-21 10:11 ` [PATCH 6/6] Gold: Handle R_X86_64_CODE_4_GOTPC32_TLSDESC/R_X86_64_CODE_4_GOTTPOFF Cui, Lili

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).