public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/8] [RFC] Support Intel APX EGPR
@ 2023-09-19 15:25 Cui, Lili
  2023-09-19 15:25 ` [PATCH 1/8] Support APX GPR32 with rex2 prefix Cui, Lili
                   ` (7 more replies)
  0 siblings, 8 replies; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu

Resent for some patches larger than the threshold cannot be sent.

Intel Advanced performance extension (APX) has been released in https://www.intel.com/content/www/us/en/developer/articles/technical/advanced-performance-extensions-apx.html.
It contains several extensions such as
1. Support APX GPR32 with rex2 prefix (For MAP0 an MAP1 legacy instructions).
2. Support APX GPR32 with extend evex prefix(legacy, VEX and EVEX extend to EVEX prefix to support GPR32).
3. Support APX NDD (non-destructive destination) and it's optimized encoding.
4. Support APX Push2/Pop2
5. Support APX NF
6. Support APX JMPABS
7. Linker support for APX encoded instructions.
8. Support APX ZU
9. Support APX CCMP and CTEST

Here is an introduction to the implementation of the first two patches in Binutils

1. APX uses the REX2 prefix to support EGPR for map0 and map1 of legacy instructions. Only adding the No_egpr flag to the instructions (legacy map0/map1) don't support EGPR (unsupported instructions are less). For map2/map3(legacy), VEX and EVEX, we use gi386-gen.c to add No_egpr.

2. we created new entries in i386-opc.tbl for instructions promoted from the legacy space and VEX.
   The extended EVEX prefix is based on the current 4-byte EVEX prefix with the semantics of several payload bits re-defined.
     EVEX extension of legacy instructions:
       All promoted legacy instructions are placed in EVEX map 4, which is
       currently reserved.
     EVEX extension of EVEX instructions:
       All existing EVEX instructions are extended by APX using the extended
       EVEX prefix, so that they can access all 32 GPRs.
     EVEX extension of VEX instructions:
       Promoting a VEX instruction into the EVEX space does not change the map
       id, the opcode, or the operand encoding of the VEX instruction.

To do list: 
1. For REX2, All opcodes listed map0 0x4*/0x7*/0xa* and map0 0x3*/0x8* are reserved under REX2 and triggers #UD when prefixed with REX2. It should be belong to first rex2 patch, I will creat another patch to add it.
2. Support APX ZU   -- In progress
3. Support APX CCMP and CTEST -- In progress 4. We haven’t disabled EGPR for 3DNOW instructions. We can disable them if AMD guys requires. 

This RFC focused on EGPR implementation in binutils. It may still have potential issues or bugs and requires futher optimization. Any comments are very appreciated.

Cui, Lili (3):
  Support APX GPR32 with extend evex prefix
  Add tests for APX GPR32 with extend evex prefix
  Support APX NF

Hu, Lin1 (2):
  Support APX NDD optimized encoding.
  Support APX JMPABS

Mo, Zewei (1):
  Support APX Push2/Pop2

konglin1 (2):
  Support APX GPR32 with rex2 prefix
  Support APX NDD

 gas/NEWS                                      |    3 +
 gas/config/tc-i386.c                          |  455 ++++-
 gas/doc/c-i386.texi                           |    3 +-
 gas/testsuite/gas/i386/apx-jmpabs-inval.l     |    3 +
 gas/testsuite/gas/i386/apx-jmpabs-inval.s     |    6 +
 gas/testsuite/gas/i386/apx-mov-inval.l        |    2 +
 gas/testsuite/gas/i386/apx-push2pop2-inval.l  |    5 +
 gas/testsuite/gas/i386/apx-push2pop2-inval.s  |    9 +
 gas/testsuite/gas/i386/i386.exp               |    2 +
 .../i386/ilp32/x86-64-opcode-inval-intel.d    |    4 +-
 .../gas/i386/ilp32/x86-64-opcode-inval.d      |    4 +-
 .../gas/i386/x86-64-apx-egpr-inval.l          |  212 +++
 .../gas/i386/x86-64-apx-egpr-inval.s          |  210 +++
 .../gas/i386/x86-64-apx-egpr-promote-inval.l  |   17 +
 .../gas/i386/x86-64-apx-egpr-promote-inval.s  |   18 +
 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d |   22 +
 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s |   25 +
 .../gas/i386/x86-64-apx-evex-promoted-intel.d |  740 +++++++++
 .../gas/i386/x86-64-apx-evex-promoted.d       |  740 +++++++++
 .../gas/i386/x86-64-apx-evex-promoted.s       | 1464 +++++++++++++++++
 .../gas/i386/x86-64-apx-jmpabs-intel.d        |   14 +
 .../gas/i386/x86-64-apx-jmpabs-inval.d        |   55 +
 .../gas/i386/x86-64-apx-jmpabs-inval.s        |   18 +
 gas/testsuite/gas/i386/x86-64-apx-jmpabs.d    |   14 +
 gas/testsuite/gas/i386/x86-64-apx-jmpabs.s    |   10 +
 gas/testsuite/gas/i386/x86-64-apx-mov-inval.l |    2 +
 gas/testsuite/gas/i386/x86-64-apx-mov-inval.s |    5 +
 .../gas/i386/x86-64-apx-ndd-optimize.d        |  120 ++
 .../gas/i386/x86-64-apx-ndd-optimize.s        |  115 ++
 gas/testsuite/gas/i386/x86-64-apx-ndd.d       |  165 ++
 gas/testsuite/gas/i386/x86-64-apx-ndd.s       |  156 ++
 gas/testsuite/gas/i386/x86-64-apx-nf-intel.d  |  633 +++++++
 gas/testsuite/gas/i386/x86-64-apx-nf.d        |  633 +++++++
 gas/testsuite/gas/i386/x86-64-apx-nf.s        | 1256 ++++++++++++++
 .../i386/x86-64-apx-push2pop2-decode-inval.d  |   29 +
 .../i386/x86-64-apx-push2pop2-decode-inval.s  |   19 +
 .../gas/i386/x86-64-apx-push2pop2-intel.d     |   42 +
 .../gas/i386/x86-64-apx-push2pop2-inval.l     |    9 +
 .../gas/i386/x86-64-apx-push2pop2-inval.s     |   13 +
 gas/testsuite/gas/i386/x86-64-apx-push2pop2.d |   42 +
 gas/testsuite/gas/i386/x86-64-apx-push2pop2.s |   39 +
 .../gas/i386/x86-64-apx-rex2-inval.d          |   29 +
 .../gas/i386/x86-64-apx-rex2-inval.s          |   25 +
 gas/testsuite/gas/i386/x86-64-apx-rex2.d      |  148 ++
 gas/testsuite/gas/i386/x86-64-apx-rex2.s      |  175 ++
 gas/testsuite/gas/i386/x86-64-evex.d          |    2 +-
 gas/testsuite/gas/i386/x86-64-inval-movbe.l   |   31 +-
 gas/testsuite/gas/i386/x86-64-inval-movbe.s   |    1 +
 gas/testsuite/gas/i386/x86-64-inval-pseudo.l  |   12 +
 gas/testsuite/gas/i386/x86-64-inval-pseudo.s  |    8 +
 .../gas/i386/x86-64-opcode-inval-intel.d      |    4 +-
 gas/testsuite/gas/i386/x86-64-opcode-inval.d  |    4 +-
 gas/testsuite/gas/i386/x86-64-pseudos.d       |   62 +
 gas/testsuite/gas/i386/x86-64-pseudos.s       |   64 +
 gas/testsuite/gas/i386/x86-64.exp             |   19 +
 include/opcode/i386.h                         |    2 +
 opcodes/i386-dis-evex-len.h                   |   20 +
 opcodes/i386-dis-evex-mod.h                   |   60 +
 opcodes/i386-dis-evex-prefix.h                |   91 +
 opcodes/i386-dis-evex-reg.h                   |  155 ++
 opcodes/i386-dis-evex-w.h                     |   10 +
 opcodes/i386-dis-evex-x86.h                   |  150 ++
 opcodes/i386-dis-evex.h                       |  638 ++++++-
 opcodes/i386-dis.c                            |  437 ++++-
 opcodes/i386-gen.c                            |   14 +
 opcodes/i386-opc.h                            |   26 +-
 opcodes/i386-opc.tbl                          |  271 ++-
 opcodes/i386-reg.tbl                          |   64 +
 68 files changed, 9692 insertions(+), 163 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/apx-jmpabs-inval.l
 create mode 100644 gas/testsuite/gas/i386/apx-jmpabs-inval.s
 create mode 100644 gas/testsuite/gas/i386/apx-mov-inval.l
 create mode 100644 gas/testsuite/gas/i386/apx-push2pop2-inval.l
 create mode 100644 gas/testsuite/gas/i386/apx-push2pop2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-mov-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-mov-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-nf-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-nf.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-nf.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2-inval.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2.s
 create mode 100644 opcodes/i386-dis-evex-x86.h

-- 
2.25.1


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

* [PATCH 1/8] Support APX GPR32 with rex2 prefix
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-21 15:27   ` Jan Beulich
  2023-09-21 15:51   ` Jan Beulich
  2023-09-19 15:25 ` [PATCH 2/8] Support APX GPR32 with extend evex prefix Cui, Lili
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, konglin1

From: konglin1 <lingling.kong@intel.com>

gas/ChangeLog:

	* gas/NEWS: Support Intel APX.
	* gas/config/tc-i386.c (struct _i386_insn):
	Add rex2 rex-byte for gpr32 r16-r31.
	Add has_nf, has_zero_upper.
	(cpu_arch): Add apx.
	(register_number): Handle RegRex2 for gpr32.
	(is_any_apx_encoding): New func. Test apx encoding.
	(is_any_apx_rex2_encoding): New func. Test rex2 prefix
	encoding.
	(build_rex2_prefix): New func. Build legacy insn in
	opcode 0/1 use gpr32 with rex2 prefix.
	(optimize_encoding): Handel add r16-r31 for registers.
	(md_assemble): Handle apx encoding.
	(check_EgprOperands): New func. Check if Egprs operands
	are valid for the instruction
	(match_template): Handle Egpr operands check.
	(set_rex_rex2): New func. set i.rex and i.rex2.
	(process_operands): Handle i.rex2.
	(set_rex_vrex): Ditto.
	(build_modrm_byte): Ditto.
	(output_insn): Handle rex2 2-byte prefix output.
	(check_register): Handle check egpr illegal without
	target apx, 64-bit mode and with rex_prefix..
	(enum i386_error): Add invalid_pseudo_prefix.
	(struct _i386_insn): Add rex2_encoding.
        (md_assemble): Handle invalid_pseudo_prefix.
        (parse_insn): Handle Prefix_REX2.
	* gas/doc/c-i386.texi: Document .apx.
	* gas/testsuite/gas/i386/x86-64.exp: Run APX tests.
	* gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l: New test.
	* gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s: New test.
	* testsuite/gas/i386/x86-64.exp: Add x86-64-apx-rex2.
	* testsuite/gas/i386/x86-64-opcode-inval-intel.d: D5 valid
	  in 64-bit mode.
	* testsuite/gas/i386/x86-64-opcode-inval.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-rex2.d: New test.
	* testsuite/gas/i386/x86-64-apx-rex2.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-rex2-inval.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-rex2-inval.s: Ditto.
        * testsuite/gas/i386/x86-64-pseudos.d: Ditto.
        * testsuite/gas/i386/x86-64-pseudos.s: Ditto.
	* testsuite/gas/i386/x86-64-inval-pseudo.l: Add rex2 invalid testcase.
        * testsuite/gas/i386/x86-64-inval-pseudo.s: Ditto.

opcode/ChangeLog:

	* opcodes/i386-gen.c: Add APX.
	* opcodes/i386-init.h (CPU_MWAITX_FLAGS): Regenerated.
	* opcodes/i386-opc.h (CpuAPX): New.
	(i386_cpu_flags): Add cpuapx.
	(No_egpr): New define for egprs (r16-r31) on instruction
	illegal.
	(i386_opcode_modifier): Add no_egpr.
	(RegRex2): New define.
        (Prefix_REX2): New.
	(Prefix_NoOptimize): Adjust the value.
	* opcodes/i386-opc.tbl: Handle legacy insn in opcode map0/1
	illegal with egprs and add rex2 prefix.
	* opcodes/i386-reg.tbl: Add egprs (r16-r31).
	* opcodes/i386-tbl.h: Regenerated.
	* opcodes/i386-dis.c (struct instr_info): Add erex for gpr32.
	Add last_erex_prefix for rex2 prefix.
	(att_names64[][8]): Extend for gpr32.
	(att_names32[][8]): Ditto.
	(att_names16[][8]): Ditto.
	(att_names8rex[][8]): Ditto.
	(ckprefix): Handle REX2 (0xd5) prefix.
	(print_insn): Handle rex2 M0 for opcode map.
	(print_register): Handle erex for gpr32.
	(OP_E_memory): Ditto.
	(OP_REG): Ditto.
	(OP_EM): Ditto.
	(OP_EX): Ditto.
---
 gas/NEWS                                      |   3 +
 gas/config/tc-i386.c                          | 174 +++++++++++++++--
 gas/doc/c-i386.texi                           |   3 +-
 .../i386/ilp32/x86-64-opcode-inval-intel.d    |   4 +-
 .../gas/i386/ilp32/x86-64-opcode-inval.d      |   4 +-
 .../gas/i386/x86-64-apx-egpr-inval.l          |  24 +++
 .../gas/i386/x86-64-apx-egpr-inval.s          |  18 ++
 .../gas/i386/x86-64-apx-rex2-inval.d          |  29 +++
 .../gas/i386/x86-64-apx-rex2-inval.s          |  25 +++
 gas/testsuite/gas/i386/x86-64-apx-rex2.d      | 148 +++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx-rex2.s      | 175 ++++++++++++++++++
 gas/testsuite/gas/i386/x86-64-inval-pseudo.l  |  12 ++
 gas/testsuite/gas/i386/x86-64-inval-pseudo.s  |   8 +
 .../gas/i386/x86-64-opcode-inval-intel.d      |   4 +-
 gas/testsuite/gas/i386/x86-64-opcode-inval.d  |   4 +-
 gas/testsuite/gas/i386/x86-64-pseudos.d       |  20 ++
 gas/testsuite/gas/i386/x86-64-pseudos.s       |  21 +++
 gas/testsuite/gas/i386/x86-64.exp             |   3 +
 include/opcode/i386.h                         |   2 +
 opcodes/i386-dis.c                            | 126 +++++++++++--
 opcodes/i386-gen.c                            |   2 +
 opcodes/i386-opc.h                            |  14 +-
 opcodes/i386-opc.tbl                          |  26 +--
 opcodes/i386-reg.tbl                          |  64 +++++++
 24 files changed, 852 insertions(+), 61 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2-inval.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-rex2.s

diff --git a/gas/NEWS b/gas/NEWS
index 730ffad9bc9..7203ebb1a0b 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,5 +1,8 @@
 -*- text -*-
 
+
+* Add support for Intel APX instructions.
+
 * Add support for Intel AVX10.1.
 
 * Add support for Intel PBNDKB instructions.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index cec9a02be52..51486985919 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -247,6 +247,7 @@ enum i386_error
     invalid_vector_register_set,
     invalid_tmm_register_set,
     invalid_dest_and_src_register_set,
+    invalid_pseudo_prefix,
     unsupported_vector_index_register,
     unsupported_broadcast,
     broadcast_needed,
@@ -353,6 +354,7 @@ struct _i386_insn
     modrm_byte rm;
     rex_byte rex;
     rex_byte vrex;
+    rex_byte rex2; // for extends gpr32 r16-r31
     sib_byte sib;
     vex_prefix vex;
 
@@ -405,6 +407,11 @@ struct _i386_insn
     /* Compressed disp8*N attribute.  */
     unsigned int memshift;
 
+    /* No CSPAZO flags update.*/
+    bool has_nf;
+
+    bool has_zero_upper;
+
     /* Prefer load or store in encoding.  */
     enum
       {
@@ -426,6 +433,9 @@ struct _i386_insn
     /* Prefer the REX byte in encoding.  */
     bool rex_encoding;
 
+    /* Prefer the REX2 byte in encoding.  */
+    bool rex2_encoding;
+
     /* Disable instruction size optimization.  */
     bool no_optimize;
 
@@ -1165,6 +1175,7 @@ static const arch_entry cpu_arch[] =
   VECARCH (sm4, SM4, ANY_SM4, reset),
   SUBARCH (pbndkb, PBNDKB, PBNDKB, false),
   VECARCH (avx10.1, AVX10_1, ANY_AVX512F, set),
+  SUBARCH (apx_f, APX_F, APX_F, false),
 };
 
 #undef SUBARCH
@@ -1694,6 +1705,7 @@ is_cpu (const insn_template *t, enum i386_cpu cpu)
     case CpuHLE:      return t->cpu.bitfield.cpuhle;
     case CpuAVX512F:  return t->cpu.bitfield.cpuavx512f;
     case CpuAVX512VL: return t->cpu.bitfield.cpuavx512vl;
+    case CpuAPX_F:      return t->cpu.bitfield.cpuapx_f;
     case Cpu64:       return t->cpu.bitfield.cpu64;
     case CpuNo64:     return t->cpu.bitfield.cpuno64;
     default:
@@ -2332,6 +2344,9 @@ register_number (const reg_entry *r)
   if (r->reg_flags & RegRex)
     nr += 8;
 
+  if (r->reg_flags & RegRex2)
+    nr += 16;
+
   if (r->reg_flags & RegVRex)
     nr += 16;
 
@@ -3832,6 +3847,18 @@ is_any_vex_encoding (const insn_template *t)
   return t->opcode_modifier.vex || is_evex_encoding (t);
 }
 
+static INLINE bool
+is_any_apx_encoding (void)
+{
+  return i.rex2 || i.rex2_encoding;
+}
+
+static INLINE bool
+is_any_apx_rex2_encoding (void)
+{
+  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;
+}
+
 static unsigned int
 get_broadcast_bytes (const insn_template *t, bool diag)
 {
@@ -4089,6 +4116,19 @@ build_evex_prefix (void)
     i.vex.bytes[3] |= i.mask.reg->reg_num;
 }
 
+/* Build (2 bytes) rex2 prefix.
+   | D5h |
+   | m | R4 X4 B4 | W R X B |
+*/
+static void
+build_rex2_prefix (void)
+{
+  i.vex.length = 2;
+  i.vex.bytes[0] = 0xd5;
+  i.vex.bytes[1] = ((i.tm.opcode_space << 7)
+		    | (i.rex2 << 4) | i.rex);
+}
+
 static void
 process_immext (void)
 {
@@ -4354,12 +4394,12 @@ optimize_encoding (void)
 	  i.suffix = 0;
 	  /* Convert to byte registers.  */
 	  if (i.types[1].bitfield.word)
-	    j = 16;
+	    j = 16 + 16; // new 16 apx additional gprs.
 	  else if (i.types[1].bitfield.dword)
-	    j = 32;
+	    j = 32 + 16 * 2; // new 16 apx additional gprs
 	  else
-	    j = 48;
-	  if (!(i.op[1].regs->reg_flags & RegRex) && base_regnum < 4)
+	    j = 48 + 16 * 3; // new 16 apx additional gprs
+	  if (!(i.op[1].regs->reg_flags & (RegRex | RegRex2)) && base_regnum < 4)
 	    j += 8;
 	  i.op[1].regs -= j;
 	}
@@ -5269,6 +5309,9 @@ md_assemble (char *line)
 	case invalid_dest_and_src_register_set:
 	  err_msg = _("destination and source registers must be distinct");
 	  break;
+	case invalid_pseudo_prefix:
+	  err_msg = _("unsupport rex2 pseudo prefix");
+	  break;
 	case unsupported_vector_index_register:
 	  err_msg = _("unsupported vector index register");
 	  break;
@@ -5498,7 +5541,17 @@ md_assemble (char *line)
       as_warn (_("translating to `%sp'"), insn_name (&i.tm));
     }
 
-  if (is_any_vex_encoding (&i.tm))
+  if (is_any_apx_encoding ())
+    {
+      if (!is_any_vex_encoding (&i.tm)
+	  && i.tm.opcode_space <= SPACE_0F
+	  && !i.vex.register_specifier && !i.has_nf && !i.has_zero_upper)
+	build_rex2_prefix ();
+
+      /* The individual REX.RXBW bits got consumed.  */
+      i.rex &= REX_OPCODE;
+    }
+  else if (is_any_vex_encoding (&i.tm))
     {
       if (!cpu_arch_flags.bitfield.cpui286)
 	{
@@ -5514,6 +5567,13 @@ md_assemble (char *line)
 	  return;
 	}
 
+      /* Check for explicit REX2 prefix.  */
+      if (i.rex2 || i.rex2_encoding)
+	{
+	  as_bad (_("REX2 prefix invalid with `%s'"), insn_name (&i.tm));
+	  return;
+	}
+
       if (i.tm.opcode_modifier.vex)
 	build_vex_prefix (t);
       else
@@ -5553,11 +5613,11 @@ md_assemble (char *line)
 	  && (i.op[1].regs->reg_flags & RegRex64) != 0)
       || (((i.types[0].bitfield.class == Reg && i.types[0].bitfield.byte)
 	   || (i.types[1].bitfield.class == Reg && i.types[1].bitfield.byte))
-	  && i.rex != 0))
+	  && (i.rex != 0 || i.rex2!=0)))
     {
       int x;
-
-      i.rex |= REX_OPCODE;
+      if (!i.rex2)
+	i.rex |= REX_OPCODE;
       for (x = 0; x < 2; x++)
 	{
 	  /* Look for 8 bit operand that uses old registers.  */
@@ -5567,9 +5627,16 @@ md_assemble (char *line)
 	      gas_assert (!(i.op[x].regs->reg_flags & RegRex));
 	      /* In case it is "hi" register, give up.  */
 	      if (i.op[x].regs->reg_num > 3)
-		as_bad (_("can't encode register '%s%s' in an "
-			  "instruction requiring REX prefix."),
-			register_prefix, i.op[x].regs->reg_name);
+		{
+		  if (i.rex)
+		    as_bad (_("can't encode register '%s%s' in an "
+			      "instruction requiring REX prefix."),
+			    register_prefix, i.op[x].regs->reg_name);
+		  else
+		    as_bad (_("can't encode register '%s%s' in an "
+			      "instruction requiring REX2 prefix."),
+			    register_prefix, i.op[x].regs->reg_name);
+		}
 
 	      /* Otherwise it is equivalent to the extended register.
 		 Since the encoding doesn't change this is merely
@@ -5580,7 +5647,7 @@ md_assemble (char *line)
 	}
     }
 
-  if (i.rex == 0 && i.rex_encoding)
+  if ((i.rex == 0 && i.rex_encoding) || (i.rex2 == 0 && i.rex2_encoding))
     {
       /* Check if we can add a REX_OPCODE byte.  Look for 8 bit operand
 	 that uses legacy register.  If it is "hi" register, don't add
@@ -5594,6 +5661,7 @@ md_assemble (char *line)
 	  {
 	    gas_assert (!(i.op[x].regs->reg_flags & RegRex));
 	    i.rex_encoding = false;
+	    i.rex2_encoding = false;
 	    break;
 	  }
 
@@ -5772,6 +5840,10 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
 		  /* {rex} */
 		  i.rex_encoding = true;
 		  break;
+		case Prefix_REX2:
+		  /* {rex2} */
+		  i.rex2_encoding = true;
+		  break;
 		case Prefix_NoOptimize:
 		  /* {nooptimize} */
 		  i.no_optimize = true;
@@ -6899,6 +6971,42 @@ VEX_check_encoding (const insn_template *t)
   return 0;
 }
 
+/* Check if Egprs operands are valid for the instruction.  */
+
+static int
+check_EgprOperands (const insn_template *t)
+{
+  if (t->opcode_modifier.no_egpr)
+    {
+      for (unsigned int op = 0; op < i.operands; op++)
+	{
+	  if (i.types[op].bitfield.class != Reg)
+	    continue;
+
+	  if (i.op[op].regs->reg_flags & RegRex2)
+	    {
+	      i.error = register_type_mismatch;
+	      return 1;
+	    }
+	}
+
+      if ((i.index_reg && (i.index_reg->reg_flags & RegRex2))
+	  || (i.base_reg && (i.base_reg->reg_flags & RegRex2)))
+	{
+	  i.error = register_type_mismatch;
+	  return 1;
+	}
+
+      /* Check pseudo prefix {rex2} are valid.  */
+      if (i.rex2_encoding)
+	{
+	  i.error = invalid_pseudo_prefix;
+	  return 1;
+	}
+    }
+  return 0;
+}
+
 /* Helper function for the progress() macro in match_template().  */
 static INLINE enum i386_error progress (enum i386_error new,
 					enum i386_error last,
@@ -7371,6 +7479,13 @@ match_template (char mnem_suffix)
 	  continue;
 	}
 
+      /* Check if EGRPS operands(r16-r31) are valid.  */
+      if (check_EgprOperands (t))
+	{
+	  specific_error = progress (i.error);
+	  continue;
+	}
+
       /* We've found a match; break out of loop.  */
       break;
     }
@@ -8245,6 +8360,18 @@ static INLINE void set_rex_vrex (const reg_entry *r, unsigned int rex_bit,
 
   if (r->reg_flags & RegVRex)
     i.vrex |= rex_bit;
+
+  if (r->reg_flags & RegRex2)
+    i.rex2 |= rex_bit;
+}
+
+static INLINE void
+set_rex_rex2 (const reg_entry *r, unsigned int rex_bit)
+{
+  if ((r->reg_flags & RegRex) != 0)
+    i.rex |= rex_bit;
+  if ((r->reg_flags & RegRex2) != 0)
+    i.rex2 |= rex_bit;
 }
 
 static int
@@ -8728,8 +8855,7 @@ build_modrm_byte (void)
 		  i.rm.regmem = ESCAPE_TO_TWO_BYTE_ADDRESSING;
 		  i.types[op] = operand_type_and_not (i.types[op], anydisp);
 		  i.types[op].bitfield.disp32 = 1;
-		  if ((i.index_reg->reg_flags & RegRex) != 0)
-		    i.rex |= REX_X;
+		  set_rex_rex2 (i.index_reg, REX_X);
 		}
 	    }
 	  /* RIP addressing for 64bit mode.  */
@@ -8800,8 +8926,7 @@ build_modrm_byte (void)
 
 	      if (!i.tm.opcode_modifier.sib)
 		i.rm.regmem = i.base_reg->reg_num;
-	      if ((i.base_reg->reg_flags & RegRex) != 0)
-		i.rex |= REX_B;
+	      set_rex_rex2 (i.base_reg, REX_B);
 	      i.sib.base = i.base_reg->reg_num;
 	      /* x86-64 ignores REX prefix bit here to avoid decoder
 		 complications.  */
@@ -8839,8 +8964,7 @@ build_modrm_byte (void)
 		  else
 		    i.sib.index = i.index_reg->reg_num;
 		  i.rm.regmem = ESCAPE_TO_TWO_BYTE_ADDRESSING;
-		  if ((i.index_reg->reg_flags & RegRex) != 0)
-		    i.rex |= REX_X;
+		  set_rex_rex2 (i.index_reg, REX_X);
 		}
 
 	      if (i.disp_operands
@@ -9987,6 +10111,12 @@ output_insn (void)
 	  for (j = ARRAY_SIZE (i.prefix), q = i.prefix; j > 0; j--, q++)
 	    if (*q)
 	      frag_opcode_byte (*q);
+
+	  if (is_any_apx_rex2_encoding ())
+	    {
+	      frag_opcode_byte (i.vex.bytes[0]);
+	      frag_opcode_byte (i.vex.bytes[1]);
+	    }
 	}
       else
 	{
@@ -13985,6 +14115,14 @@ static bool check_register (const reg_entry *r)
 	i.vec_encoding = vex_encoding_error;
     }
 
+  if (r->reg_flags & RegRex2)
+    {
+      if (!cpu_arch_flags.bitfield.cpuapx_f
+	  || flag_code != CODE_64BIT
+	  || i.rex_encoding)
+	return false;
+    }
+
   if (((r->reg_flags & (RegRex64 | RegRex)) || r->reg_type.bitfield.qword)
       && (!cpu_arch_flags.bitfield.cpu64
 	  || r->reg_type.bitfield.class != RegCR
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index b04e1b00b4b..5d79a332f53 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -216,6 +216,7 @@ accept various extension mnemonics.  For example,
 @code{avx10.1/512},
 @code{avx10.1/256},
 @code{avx10.1/128},
+@code{apx},
 @code{amx_int8},
 @code{amx_bf16},
 @code{amx_fp16},
@@ -1662,7 +1663,7 @@ supported on the CPU specified.  The choices for @var{cpu_type} are:
 @item @samp{.lwp} @tab @samp{.fma4} @tab @samp{.xop} @tab @samp{.cx16}
 @item @samp{.padlock} @tab @samp{.clzero} @tab @samp{.mwaitx} @tab @samp{.rdpru}
 @item @samp{.mcommit} @tab @samp{.sev_es} @tab @samp{.snp} @tab @samp{.invlpgb}
-@item @samp{.tlbsync}
+@item @samp{.tlbsync} @tab @samp{.apx}
 @end multitable
 
 Apart from the warning, there are only two other effects on
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval-intel.d b/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval-intel.d
index a2b09d2e74f..605548285f2 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval-intel.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval-intel.d
@@ -11,11 +11,11 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	37                   	\(bad\)
 
 0+1 <aad0>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	0a                   	.byte 0xa
 
 0+3 <aad1>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	02                   	.byte 0x2
 
 0+5 <aam0>:
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval.d b/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval.d
index 5a17b0b412e..c9d3f2fdbb6 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval.d
@@ -11,11 +11,11 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	37                   	\(bad\)
 
 0+1 <aad0>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	0a                   	.byte 0xa
 
 0+3 <aad1>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	02                   	.byte 0x2
 
 0+5 <aam0>:
diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
new file mode 100644
index 00000000000..c419f449f27
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
@@ -0,0 +1,24 @@
+.*: Assembler messages:
+.*:4: Error: bad register name `%r17d'
+.*:7: Error: register type mismatch for `xsave'
+.*:8: Error: register type mismatch for `xsave64'
+.*:9: Error: register type mismatch for `xrstor'
+.*:10: Error: register type mismatch for `xrstor64'
+.*:11: Error: register type mismatch for `xsaves'
+.*:12: Error: register type mismatch for `xsaves64'
+.*:13: Error: register type mismatch for `xrstors'
+.*:14: Error: register type mismatch for `xrstors64'
+.*:15: Error: register type mismatch for `xsaveopt'
+.*:16: Error: register type mismatch for `xsaveopt64'
+.*:17: Error: register type mismatch for `xsavec'
+.*:18: Error: register type mismatch for `xsavec64'
+GAS LISTING .*
+#...
+[ 	]*1[ 	]+\# Check Illegal 64bit APX instructions
+[ 	]*2[ 	]+\.text
+[ 	]*3[ 	]+\.arch \.noapx_f
+[ 	]*4[ 	]+test    \$0x7, %r17d
+[ 	]*5[ 	]+\.arch \.apx_f
+[ 	]*6[ 	]+\?\?\?\? D510F7C1 		test    \$0x7, %r17d
+[ 	]*6[ 	]+07000000 
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
new file mode 100644
index 00000000000..5249b888046
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
@@ -0,0 +1,18 @@
+# Check Illegal 64bit APX instructions
+	.text
+	.arch .noapx_f
+	test    $0x7, %r17d
+	.arch .apx_f
+	test    $0x7, %r17d
+	xsave (%r16, %rbx)
+	xsave64 (%r16, %rbx)
+	xrstor (%r16, %rbx)
+	xrstor64 (%r16, %rbx)
+	xsaves (%r16, %rbx)
+	xsaves64 (%r16, %rbx)
+	xrstors (%r16, %rbx)
+	xrstors64 (%r16, %rbx)
+	xsaveopt (%r16, %rbx)
+	xsaveopt64 (%r16, %rbx)
+	xsavec (%r16, %rbx)
+	xsavec64 (%r16, %rbx)
diff --git a/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.d b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.d
new file mode 100644
index 00000000000..655792818cc
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.d
@@ -0,0 +1,29 @@
+#as:
+#objdump: -dw
+#name: x86-64 APX use gpr32 with rex2 prefix illegal check
+#source: x86-64-apx-rex2-inval.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*d5 f0 d5 f0\s+{rex2} pmullw %mm0,%mm6
+\s*[a-f0-9]+:\s*d5 f9 d5 f9\s+{rex2} pmullw %mm1,%mm7
+\s*[a-f0-9]+:\s*d5 88 d5 f9\s+{rex2} pmullw %mm1,%mm7
+\s*[a-f0-9]+:\s*d5 f7 d5 f9\s+{rex2} pmullw %mm1,%mm7
+\s*[a-f0-9]+:\s*d5 80 d5 f9\s+{rex2} pmullw %mm1,%mm7
+\s*[a-f0-9]+:\s*66 d5 f9 d5 f9\s+{rex2} pmullw %xmm9,%xmm7
+\s*[a-f0-9]+:\s*66 41\s+data16 rex.B
+\s*[a-f0-9]+:\s*d5 f9 d5 f9\s+{rex2} pmullw %mm1,%mm7
+\s*[a-f0-9]+:\s*d5 ff 21 f8\s+{rex2} mov %db15,%r24
+\s*[a-f0-9]+:\s*d5 01 21 00\s+{rex2} and %eax,\(%r8\)
+\s*[a-f0-9]+:\s*d5 00 00 f7\s+{rex2} add %sil,%dil
+\s*[a-f0-9]+:\s*d5 ff 20 f8\s+{rex2} mov %cr15,%r24
+\s*[a-f0-9]+:\s*d5 81 ae\s+\(bad\)
+\s*[a-f0-9]+:\s*27\s+\(bad\)
+\s*[a-f0-9]+:\s*d5 c1 38\s+\(bad\)
+\s*[a-f0-9]+:\s*f6\s+.byte 0xf6
+\s*[a-f0-9]+:\s*07\s+\(bad\)
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s
new file mode 100644
index 00000000000..51dd8df79d6
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s
@@ -0,0 +1,25 @@
+# Check 64bit instructions with rex2 prefix bad encoding
+
+	.allow_index_reg
+	.text
+_start:
+# check {rex2} pseudo prefix to force REX2 encoding.
+.byte 0xd5, 0xf0, 0xd5, 0xf0
+.byte 0xd5, 0xf9, 0xd5, 0xf9
+.byte 0xd5, 0x88, 0xd5, 0xf9
+.byte 0xd5, 0xf7, 0xd5, 0xf9
+.byte 0xd5, 0x80, 0xd5, 0xf9
+
+.byte 0x66
+.byte 0xd5, 0xf9, 0xd5, 0xf9
+.byte 0x66, 0x41
+.byte 0xd5, 0xf9, 0xd5, 0xf9
+.byte 0xd5, 0xff, 0x21, 0xf8
+.byte 0xd5, 0x01, 0x21, 0x00
+.byte 0xd5, 0x00, 0x00, 0xf7
+.byte 0xd5, 0xff, 0x20, 0xf8
+# check xsave/xstore are not allowed to use rex2.
+.byte 0xd5, 0x81, 0xae, 0x27
+# check rex2 only use for map0/1
+.byte 0xd5, 0xc1, 0x38, 0xf6, 0x07
+
diff --git a/gas/testsuite/gas/i386/x86-64-apx-rex2.d b/gas/testsuite/gas/i386/x86-64-apx-rex2.d
new file mode 100644
index 00000000000..d64b615ff4d
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-rex2.d
@@ -0,0 +1,148 @@
+#as:
+#objdump: -dw
+#name: x86-64 APX use gpr32 with rex2 prefix
+#source: x86-64-apx-rex2.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*d5 11 f6 c0 07\s+test   \$0x7,%r24b
+\s*[a-f0-9]+:\s*d5 11 f7 c0 07 00 00 00 	test   \$0x7,%r24d
+\s*[a-f0-9]+:\s*d5 19 f7 c0 07 00 00 00 	test   \$0x7,%r24
+\s*[a-f0-9]+:\s*66 d5 11 f7 c0 07 00 	test   \$0x7,%r24w
+\s*[a-f0-9]+:\s*d5 40 8d 00\s+lea    \(%rax\),%r16d
+\s*[a-f0-9]+:\s*d5 40 8d 08\s+lea    \(%rax\),%r17d
+\s*[a-f0-9]+:\s*d5 40 8d 10\s+lea    \(%rax\),%r18d
+\s*[a-f0-9]+:\s*d5 40 8d 18\s+lea    \(%rax\),%r19d
+\s*[a-f0-9]+:\s*d5 40 8d 20\s+lea    \(%rax\),%r20d
+\s*[a-f0-9]+:\s*d5 40 8d 28\s+lea    \(%rax\),%r21d
+\s*[a-f0-9]+:\s*d5 40 8d 30\s+lea    \(%rax\),%r22d
+\s*[a-f0-9]+:\s*d5 40 8d 38\s+lea    \(%rax\),%r23d
+\s*[a-f0-9]+:\s*d5 44 8d 00\s+lea    \(%rax\),%r24d
+\s*[a-f0-9]+:\s*d5 44 8d 08\s+lea    \(%rax\),%r25d
+\s*[a-f0-9]+:\s*d5 44 8d 10\s+lea    \(%rax\),%r26d
+\s*[a-f0-9]+:\s*d5 44 8d 18\s+lea    \(%rax\),%r27d
+\s*[a-f0-9]+:\s*d5 44 8d 20\s+lea    \(%rax\),%r28d
+\s*[a-f0-9]+:\s*d5 44 8d 28\s+lea    \(%rax\),%r29d
+\s*[a-f0-9]+:\s*d5 44 8d 30\s+lea    \(%rax\),%r30d
+\s*[a-f0-9]+:\s*d5 44 8d 38\s+lea    \(%rax\),%r31d
+\s*[a-f0-9]+:\s*d5 20 8d 04 05 00 00 00 00\s+lea    0x0\(,%r16,1\),%eax
+\s*[a-f0-9]+:\s*d5 20 8d 04 0d 00 00 00 00\s+lea    0x0\(,%r17,1\),%eax
+\s*[a-f0-9]+:\s*d5 20 8d 04 15 00 00 00 00\s+lea    0x0\(,%r18,1\),%eax
+\s*[a-f0-9]+:\s*d5 20 8d 04 1d 00 00 00 00\s+lea    0x0\(,%r19,1\),%eax
+\s*[a-f0-9]+:\s*d5 20 8d 04 25 00 00 00 00\s+lea    0x0\(,%r20,1\),%eax
+\s*[a-f0-9]+:\s*d5 20 8d 04 2d 00 00 00 00\s+lea    0x0\(,%r21,1\),%eax
+\s*[a-f0-9]+:\s*d5 20 8d 04 35 00 00 00 00\s+lea    0x0\(,%r22,1\),%eax
+\s*[a-f0-9]+:\s*d5 20 8d 04 3d 00 00 00 00\s+lea    0x0\(,%r23,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 05 00 00 00 00\s+lea    0x0\(,%r24,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 0d 00 00 00 00\s+lea    0x0\(,%r25,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 15 00 00 00 00\s+lea    0x0\(,%r26,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 1d 00 00 00 00\s+lea    0x0\(,%r27,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 25 00 00 00 00\s+lea    0x0\(,%r28,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 2d 00 00 00 00\s+lea    0x0\(,%r29,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 35 00 00 00 00\s+lea    0x0\(,%r30,1\),%eax
+\s*[a-f0-9]+:\s*d5 22 8d 04 3d 00 00 00 00\s+lea    0x0\(,%r31,1\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 00\s+lea    \(%r16\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 01\s+lea    \(%r17\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 02\s+lea    \(%r18\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 03\s+lea    \(%r19\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 04 24       	lea    \(%r20\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 45 00       	lea    0x0\(%r21\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 06\s+lea    \(%r22\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 07\s+lea    \(%r23\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 00\s+lea    \(%r24\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 01\s+lea    \(%r25\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 02\s+lea    \(%r26\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 03\s+lea    \(%r27\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 04 24       	lea    \(%r28\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 45 00       	lea    0x0\(%r29\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 06          	lea    \(%r30\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 07          	lea    \(%r31\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 44 24 01    	lea    0x1\(%r20\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 44 24 01    	lea    0x1\(%r28\),%eax
+\s*[a-f0-9]+:\s*d5 10 8d 84 24 81 00 00 00 	lea    0x81\(%r20\),%eax
+\s*[a-f0-9]+:\s*d5 11 8d 84 24 81 00 00 00 	lea    0x81\(%r28\),%eax
+\s*[a-f0-9]+:\s*4c 8d 38             	lea    \(%rax\),%r15
+\s*[a-f0-9]+:\s*d5 48 8d 00          	lea    \(%rax\),%r16
+\s*[a-f0-9]+:\s*49 8d 07             	lea    \(%r15\),%rax
+\s*[a-f0-9]+:\s*d5 18 8d 00          	lea    \(%r16\),%rax
+\s*[a-f0-9]+:\s*4a 8d 04 3d 00 00 00 00 	lea    0x0\(,%r15,1\),%rax
+\s*[a-f0-9]+:\s*d5 28 8d 04 05 00 00 00 00 	lea    0x0\(,%r16,1\),%rax
+\s*[a-f0-9]+:\s*44 0f af f8          	imul   %eax,%r15d
+\s*[a-f0-9]+:\s*d5 c0 af c0          	imul   %eax,%r16d
+\s*[a-f0-9]+:\s*d5 90 62 12          	punpckldq %mm2,\(%r18\)
+\s*[a-f0-9]+:\s*d5 10 b8 01 00 00 00 	mov    \$0x1,%r16d
+\s*[a-f0-9]+:\s*d5 18 63 c0\s+movslq %r16d,%rax
+\s*[a-f0-9]+:\s*d5 48 63 c0\s+movslq %eax,%r16
+\s*[a-f0-9]+:\s*d5 58 63 c8\s+movslq %r16d,%r17
+\s*[a-f0-9]+:\s*d5 90 4c c0\s+cmovl  %r16d,%eax
+\s*[a-f0-9]+:\s*d5 c0 4c c0\s+cmovl  %eax,%r16d
+\s*[a-f0-9]+:\s*d5 d0 4c c8\s+cmovl  %r16d,%r17d
+\s*[a-f0-9]+:\s*d5 90 af 1c 00\s+imul   \(%r16,%rax,1\),%ebx
+\s*[a-f0-9]+:\s*d5 a0 af 1c 00\s+imul   \(%rax,%r16,1\),%ebx
+\s*[a-f0-9]+:\s*d5 c0 af 04 18\s+imul   \(%rax,%rbx,1\),%r16d
+\s*[a-f0-9]+:\s*d5 b0 af 04 08\s+imul   \(%r16,%r17,1\),%eax
+\s*[a-f0-9]+:\s*d5 e0 af 0c 00\s+imul   \(%rax,%r16,1\),%r17d
+\s*[a-f0-9]+:\s*d5 d0 af 0c 00\s+imul   \(%r16,%rax,1\),%r17d
+\s*[a-f0-9]+:\s*d5 f0 af 14 08\s+imul   \(%r16,%r17,1\),%r18d
+\s*[a-f0-9]+:\s*d5 90 4c 1c 00\s+cmovl  \(%r16,%rax,1\),%ebx
+\s*[a-f0-9]+:\s*d5 a0 4c 1c 00\s+cmovl  \(%rax,%r16,1\),%ebx
+\s*[a-f0-9]+:\s*d5 c0 4c 04 18\s+cmovl  \(%rax,%rbx,1\),%r16d
+\s*[a-f0-9]+:\s*d5 b0 4c 04 08\s+cmovl  \(%r16,%r17,1\),%eax
+\s*[a-f0-9]+:\s*d5 e0 4c 0c 00\s+cmovl  \(%rax,%r16,1\),%r17d
+\s*[a-f0-9]+:\s*d5 d0 4c 0c 00\s+cmovl  \(%r16,%rax,1\),%r17d
+\s*[a-f0-9]+:\s*d5 f0 4c 14 08\s+cmovl  \(%r16,%r17,1\),%r18d
+\s*[a-f0-9]+:\s*d5 10 89 c0   \s+mov    %eax,%r16d
+\s*[a-f0-9]+:\s*d5 40 89 c0   \s+mov    %r16d,%eax
+\s*[a-f0-9]+:\s*d5 50 89 c1   \s+mov    %r16d,%r17d
+\s*[a-f0-9]+:\s*d5 10 8b 1c 00\s+mov    \(%r16,%rax,1\),%ebx
+\s*[a-f0-9]+:\s*d5 20 8b 1c 00\s+mov    \(%rax,%r16,1\),%ebx
+\s*[a-f0-9]+:\s*d5 40 8b 04 18\s+mov    \(%rax,%rbx,1\),%r16d
+\s*[a-f0-9]+:\s*d5 30 8b 04 08\s+mov    \(%r16,%r17,1\),%eax
+\s*[a-f0-9]+:\s*d5 60 8b 0c 00\s+mov    \(%rax,%r16,1\),%r17d
+\s*[a-f0-9]+:\s*d5 50 8b 0c 00\s+mov    \(%r16,%rax,1\),%r17d
+\s*[a-f0-9]+:\s*d5 70 8b 14 08\s+mov    \(%r16,%r17,1\),%r18d
+\s*[a-f0-9]+:\s*d5 a0 94 04 00\s+sete   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 90 94 04 00\s+sete   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 b0 94 04 08\s+sete   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 a0 1f 04 00\s+nopl   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 90 1f 04 00\s+nopl   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 b0 1f 04 08\s+nopl   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 ff 04 00\s+incl   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 ff 04 00\s+incl   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 ff 04 08\s+incl   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 ff 0c 00\s+decl   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 ff 0c 00\s+decl   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 ff 0c 08\s+decl   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 f7 14 00\s+notl   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 f7 14 00\s+notl   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 f7 14 08\s+notl   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 f7 1c 00\s+negl   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 f7 1c 00\s+negl   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 f7 1c 08\s+negl   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 f7 24 00\s+mull   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 f7 24 00\s+mull   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 f7 24 08\s+mull   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 f7 2c 00\s+imull  \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 f7 2c 00\s+imull  \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 f7 2c 08\s+imull  \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 f7 34 00\s+divl   \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 f7 34 00\s+divl   \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 f7 34 08\s+divl   \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 20 f7 3c 00\s+idivl  \(%rax,%r16,1\)
+\s*[a-f0-9]+:\s*d5 10 f7 3c 00\s+idivl  \(%r16,%rax,1\)
+\s*[a-f0-9]+:\s*d5 30 f7 3c 08\s+idivl  \(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*d5 90 94 c0   \s+sete   %r16b
+\s*[a-f0-9]+:\s*d5 90 1f c0   \s+nop    %r16d
+\s*[a-f0-9]+:\s*d5 10 ff c0   \s+inc    %r16d
+\s*[a-f0-9]+:\s*d5 10 ff c8   \s+dec    %r16d
+\s*[a-f0-9]+:\s*d5 10 f7 d0   \s+not    %r16d
+\s*[a-f0-9]+:\s*d5 10 f7 d8   \s+neg    %r16d
+\s*[a-f0-9]+:\s*d5 10 f7 e0   \s+mul    %r16d
+\s*[a-f0-9]+:\s*d5 10 f7 e8   \s+imul   %r16d
+\s*[a-f0-9]+:\s*d5 10 f7 f0   \s+div    %r16d
+\s*[a-f0-9]+:\s*d5 10 f7 f8   \s+idiv   %r16d
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-rex2.s b/gas/testsuite/gas/i386/x86-64-apx-rex2.s
new file mode 100644
index 00000000000..62bf817aae6
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-rex2.s
@@ -0,0 +1,175 @@
+# Check 64bit instructions with rex2 prefix encoding
+
+	.allow_index_reg
+	.text
+_start:
+         test	$0x7, %r24b
+         test	$0x7, %r24d
+         test	$0x7, %r24
+         test	$0x7, %r24w
+## R bit
+         leal	(%rax), %r16d
+         leal	(%rax), %r17d
+         leal	(%rax), %r18d
+         leal	(%rax), %r19d
+         leal	(%rax), %r20d
+         leal	(%rax), %r21d
+         leal	(%rax), %r22d
+         leal	(%rax), %r23d
+         leal	(%rax), %r24d
+         leal	(%rax), %r25d
+         leal	(%rax), %r26d
+         leal	(%rax), %r27d
+         leal	(%rax), %r28d
+         leal	(%rax), %r29d
+         leal	(%rax), %r30d
+         leal	(%rax), %r31d
+## X bit
+         leal	(,%r16), %eax
+         leal	(,%r17), %eax
+         leal	(,%r18), %eax
+         leal	(,%r19), %eax
+         leal	(,%r20), %eax
+         leal	(,%r21), %eax
+         leal	(,%r22), %eax
+         leal	(,%r23), %eax
+         leal	(,%r24), %eax
+         leal	(,%r25), %eax
+         leal	(,%r26), %eax
+         leal	(,%r27), %eax
+         leal	(,%r28), %eax
+         leal	(,%r29), %eax
+         leal	(,%r30), %eax
+         leal	(,%r31), %eax
+## B bit
+         leal	(%r16), %eax
+         leal	(%r17), %eax
+         leal	(%r18), %eax
+         leal	(%r19), %eax
+         leal	(%r20), %eax
+         leal	(%r21), %eax
+         leal	(%r22), %eax
+         leal	(%r23), %eax
+         leal	(%r24), %eax
+         leal	(%r25), %eax
+         leal	(%r26), %eax
+         leal	(%r27), %eax
+         leal	(%r28), %eax
+         leal	(%r29), %eax
+         leal	(%r30), %eax
+         leal	(%r31), %eax
+## SIB
+         leal	1(%r20), %eax
+         leal	1(%r28), %eax
+         leal	129(%r20), %eax
+         leal	129(%r28), %eax
+## W bit
+         leaq	(%rax), %r15
+         leaq	(%rax), %r16
+         leaq	(%r15), %rax
+         leaq	(%r16), %rax
+         leaq	(,%r15), %rax
+         leaq	(,%r16), %rax
+## M bit
+         imull	%eax, %r15d
+         imull	%eax, %r16d
+	 punpckldq (%r18), %mm2 #D5906212
+
+## AddRegFrm
+         movl	$1, %r16d
+## MRMSrcReg
+         movslq	%r16d, %rax
+         movslq	%eax, %r16
+         movslq	%r16d, %r17
+## MRMSrcRegCC
+         cmovll	%r16d, %eax
+         cmovll	%eax, %r16d
+         cmovll	%r16d, %r17d
+## MRMSrcMem
+         imull	(%r16,%rax), %ebx
+         imull	(%rax,%r16), %ebx
+         imull	(%rax,%rbx), %r16d
+         imull	(%r16,%r17), %eax
+         imull	(%rax,%r16), %r17d
+         imull	(%r16,%rax), %r17d
+         imull	(%r16,%r17), %r18d
+## MRMSrcMemCC
+         cmovll	(%r16,%rax), %ebx
+         cmovll	(%rax,%r16), %ebx
+         cmovll	(%rax,%rbx), %r16d
+         cmovll	(%r16,%r17), %eax
+         cmovll	(%rax,%r16), %r17d
+         cmovll	(%r16,%rax), %r17d
+         cmovll	(%r16,%r17), %r18d
+## MRMDestReg
+         movl	%eax, %r16d
+         movl	%r16d, %eax
+         movl	%r16d, %r17d
+## MRMDestMem
+         movl	(%r16,%rax), %ebx
+         movl	(%rax,%r16), %ebx
+         movl	(%rax,%rbx), %r16d
+         movl	(%r16,%r17), %eax
+         movl	(%rax,%r16), %r17d
+         movl	(%r16,%rax), %r17d
+         movl	(%r16,%r17), %r18d
+## MRMXmCC
+         sete	(%rax,%r16)
+         sete	(%r16,%rax)
+         sete	(%r16,%r17)
+## MRMXm
+         nopl	(%rax,%r16)
+         nopl	(%r16,%rax)
+         nopl	(%r16,%r17)
+## MRM0m
+         incl	(%rax,%r16)
+         incl	(%r16,%rax)
+         incl	(%r16,%r17)
+## MRM1m
+         decl	(%rax,%r16)
+         decl	(%r16,%rax)
+         decl	(%r16,%r17)
+## MRM2m
+         notl	(%rax,%r16)
+         notl	(%r16,%rax)
+         notl	(%r16,%r17)
+## MRM3m
+         negl	(%rax,%r16)
+         negl	(%r16,%rax)
+         negl	(%r16,%r17)
+## MRM4m
+         mull	(%rax,%r16)
+         mull	(%r16,%rax)
+         mull	(%r16,%r17)
+## MRM5m
+         imull	(%rax,%r16)
+         imull	(%r16,%rax)
+         imull	(%r16,%r17)
+## MRM6m
+         divl	(%rax,%r16)
+         divl	(%r16,%rax)
+         divl	(%r16,%r17)
+## MRM7m
+         idivl	(%rax,%r16)
+         idivl	(%r16,%rax)
+         idivl	(%r16,%r17)
+## MRMXrCC
+         sete	%r16b
+## MRMXr
+         nopl	%r16d
+## MRM0r
+         incl	%r16d
+## MRM1r
+         decl	%r16d
+## MRM2r
+         notl	%r16d
+## MRM3r
+         negl	%r16d
+## MRM4r
+         mull	%r16d
+## MRM5r
+         imull	%r16d
+## MRM6r
+         divl	%r16d
+## MRM7r
+         idivl	%r16d
diff --git a/gas/testsuite/gas/i386/x86-64-inval-pseudo.l b/gas/testsuite/gas/i386/x86-64-inval-pseudo.l
index 13ad0fb768f..9f5488d8218 100644
--- a/gas/testsuite/gas/i386/x86-64-inval-pseudo.l
+++ b/gas/testsuite/gas/i386/x86-64-inval-pseudo.l
@@ -1,10 +1,22 @@
 .*: Assembler messages:
 .*:2: Error: .*
 .*:3: Error: .*
+.*:6: Error: .*
+.*:7: Error: .*
+.*:10: Error: .*
+.*:11: Error: .*
 GAS LISTING .*
 
 
 [ 	]*1[ 	]+\.text
 [ 	]*2[ 	]+\{disp16\} movb \(%ebp\),%al
 [ 	]*3[ 	]+\{disp16\} movb \(%rbp\),%al
+[ 	]*4[ 	]+
+[ 	]*5[ 	]+.*
+[ 	]*6[ 	]+\{rex2\} xsave \(%r15, %rbx\)
+[ 	]*7[ 	]+\{rex2\} xsave64 \(%r15, %rbx\)
+[ 	]*8[ 	]+
+[ 	]*9[ 	]+.*
+[ 	]*10[ 	]+\{rex\} movl %eax,\(%r16\)
+[ 	]*11[ 	]+\{rex\} movl %r16d,\(%r8\)
 #...
diff --git a/gas/testsuite/gas/i386/x86-64-inval-pseudo.s b/gas/testsuite/gas/i386/x86-64-inval-pseudo.s
index c10b14c2099..8b387de9319 100644
--- a/gas/testsuite/gas/i386/x86-64-inval-pseudo.s
+++ b/gas/testsuite/gas/i386/x86-64-inval-pseudo.s
@@ -1,4 +1,12 @@
 	.text
 	{disp16} movb (%ebp),%al
 	{disp16} movb (%rbp),%al
+
+	/* Instruction not support APX.  */
+	{rex2} xsave (%r15, %rbx)
+	{rex2} xsave64 (%r15, %rbx)
+
+	/* Add pseudo prefix {rex} for GPR32 register.  */
+	{rex} movl %eax,(%r16)
+	{rex} movl %r16d,(%r8)
 	.p2align 4,0
diff --git a/gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d b/gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d
index 6ee5b2f95ce..03126541f24 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d
@@ -11,11 +11,11 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	37                   	\(bad\)
 
 0+1 <aad0>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	0a                   	.byte 0xa
 
 0+3 <aad1>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	02                   	.byte 0x2
 
 0+5 <aam0>:
diff --git a/gas/testsuite/gas/i386/x86-64-opcode-inval.d b/gas/testsuite/gas/i386/x86-64-opcode-inval.d
index 12f02c1766c..0200f3dfd92 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode-inval.d
+++ b/gas/testsuite/gas/i386/x86-64-opcode-inval.d
@@ -10,11 +10,11 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	37                   	\(bad\)
 
 0+1 <aad0>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	0a                   	.byte 0xa
 
 0+3 <aad1>:
-[ 	]*[a-f0-9]+:	d5                   	\(bad\)
+[ 	]*[a-f0-9]+:	d5                   	rex2
 [ 	]*[a-f0-9]+:	02                   	.byte 0x2
 
 0+5 <aam0>:
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d
index 0cc75ef2457..8cc4040cb77 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.d
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.d
@@ -404,6 +404,18 @@ Disassembly of section .text:
  +[a-f0-9]+:	41 0f 28 10          	movaps \(%r8\),%xmm2
  +[a-f0-9]+:	40 0f 38 01 01       	rex phaddw \(%rcx\),%mm0
  +[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-f0-9]+:	d5 01 89 c6          	{rex2} mov %eax,%r14d
+ +[a-f0-9]+:	d5 01 89 00          	{rex2} mov %eax,\(%r8\)
+ +[a-f0-9]+:	d5 80 28 d7          	{rex2} movaps %xmm7,%xmm2
+ +[a-f0-9]+:	d5 84 28 e7          	{rex2} movaps %xmm7,%xmm12
+ +[a-f0-9]+:	d5 80 28 11          	{rex2} movaps \(%rcx\),%xmm2
+ +[a-f0-9]+:	d5 81 28 10          	{rex2} movaps \(%r8\),%xmm2
  +[a-f0-9]+:	8a 45 00             	mov    0x0\(%rbp\),%al
  +[a-f0-9]+:	8a 45 00             	mov    0x0\(%rbp\),%al
  +[a-f0-9]+:	8a 85 00 00 00 00    	mov    0x0\(%rbp\),%al
@@ -458,6 +470,14 @@ Disassembly of section .text:
  +[a-f0-9]+:	41 0f 28 10          	movaps \(%r8\),%xmm2
  +[a-f0-9]+:	40 0f 38 01 01       	rex phaddw \(%rcx\),%mm0
  +[a-f0-9]+:	41 0f 38 01 00       	phaddw \(%r8\),%mm0
+ +[a-f0-9]+:	88 c4                	mov    %al,%ah
+ +[a-f0-9]+:	d5 00 89 c3          	{rex2} mov %eax,%ebx
+ +[a-f0-9]+:	d5 01 89 c6          	{rex2} mov %eax,%r14d
+ +[a-f0-9]+:	d5 01 89 00          	{rex2} mov %eax,\(%r8\)
+ +[a-f0-9]+:	d5 80 28 d7          	{rex2} movaps %xmm7,%xmm2
+ +[a-f0-9]+:	d5 84 28 e7          	{rex2} movaps %xmm7,%xmm12
+ +[a-f0-9]+:	d5 80 28 11          	{rex2} movaps \(%rcx\),%xmm2
+ +[a-f0-9]+:	d5 81 28 10          	{rex2} movaps \(%r8\),%xmm2
  +[a-f0-9]+:	8a 45 00             	mov    0x0\(%rbp\),%al
  +[a-f0-9]+:	8a 45 00             	mov    0x0\(%rbp\),%al
  +[a-f0-9]+:	8a 85 00 00 00 00    	mov    0x0\(%rbp\),%al
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.s b/gas/testsuite/gas/i386/x86-64-pseudos.s
index 08fac8381c6..eb25f2a8fbf 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.s
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.s
@@ -360,6 +360,19 @@ _start:
 	{rex} movaps (%r8),%xmm2
 	{rex} phaddw (%rcx),%mm0
 	{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
+	{rex2} movl %eax,%r14d
+	{rex2} movl %eax,(%r8)
+	{rex2} movaps %xmm7,%xmm2
+	{rex2} movaps %xmm7,%xmm12
+	{rex2} movaps (%rcx),%xmm2
+	{rex2} movaps (%r8),%xmm2
+
 
 	movb (%rbp),%al
 	{disp8} movb (%rbp),%al
@@ -422,6 +435,14 @@ _start:
 	{rex} movaps xmm2,XMMWORD PTR [r8]
 	{rex} phaddw mm0,QWORD PTR [rcx]
 	{rex} phaddw mm0,QWORD PTR [r8]
+	{rex2} mov ah,al
+	{rex2} mov ebx,eax
+	{rex2} mov r14d,eax
+	{rex2} mov DWORD PTR [r8],eax
+	{rex2} movaps xmm2,xmm7
+	{rex2} movaps xmm12,xmm7
+	{rex2} movaps xmm2,XMMWORD PTR [rcx]
+	{rex2} movaps xmm2,XMMWORD PTR [r8]
 
 	mov al, BYTE PTR [rbp]
 	{disp8} mov al, BYTE PTR [rbp]
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 52711cdcf6f..07df89ba0cc 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -360,6 +360,9 @@ run_dump_test "x86-64-avx512f-rcigrne-intel"
 run_dump_test "x86-64-avx512f-rcigrne"
 run_dump_test "x86-64-avx512f-rcigru-intel"
 run_dump_test "x86-64-avx512f-rcigru"
+run_list_test "x86-64-apx-egpr-inval" "-al"
+run_dump_test "x86-64-apx-rex2"
+run_dump_test "x86-64-apx-rex2-inval"
 run_dump_test "x86-64-avx512f-rcigrz-intel"
 run_dump_test "x86-64-avx512f-rcigrz"
 run_dump_test "x86-64-clwb"
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
index dec7652c1cc..a6af3d54da0 100644
--- a/include/opcode/i386.h
+++ b/include/opcode/i386.h
@@ -112,6 +112,8 @@
 /* x86-64 extension prefix.  */
 #define REX_OPCODE	0x40
 
+#define REX2_OPCODE	0xd5
+
 /* Non-zero if OPCODE is the rex prefix.  */
 #define REX_PREFIX_P(opcode) (((opcode) & 0xf0) == REX_OPCODE)
 
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 87ecf0f5e23..65bdd6f65db 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -144,6 +144,12 @@ struct instr_info
   /* Bits of REX we've already used.  */
   uint8_t rex_used;
 
+  /* REX2 prefix for the current instruction use gpr32(r16-r31). */
+  unsigned char rex2;
+  /* Bits of REX2 we've already used.  */
+  unsigned char rex2_used;
+  unsigned char rex2_payload;
+
   bool need_modrm;
   unsigned char need_vex;
   bool has_sib;
@@ -169,6 +175,7 @@ struct instr_info
   signed char last_data_prefix;
   signed char last_addr_prefix;
   signed char last_rex_prefix;
+  signed char last_rex2_prefix;
   signed char last_seg_prefix;
   signed char fwait_prefix;
   /* The active segment register prefix.  */
@@ -269,6 +276,12 @@ struct dis_private {
       ins->rex_used |= REX_OPCODE;			\
   }
 
+#define USED_REX2(value)				\
+  {							\
+    if ((ins->rex2 & value))				\
+      ins->rex2_used |= value;				\
+  }
+
 
 #define EVEX_b_used 1
 #define EVEX_len_used 2
@@ -286,6 +299,7 @@ struct dis_private {
 #define PREFIX_DATA 0x200
 #define PREFIX_ADDR 0x400
 #define PREFIX_FWAIT 0x800
+#define PREFIX_REX2 0x1000
 
 /* Make sure that bytes from INFO->PRIVATE_DATA->BUFFER (inclusive)
    to ADDR (exclusive) are valid.  Returns true for success, false
@@ -367,6 +381,7 @@ fetch_error (const instr_info *ins)
 #define PREFIX_IGNORED_DATA	(PREFIX_DATA << PREFIX_IGNORED_SHIFT)
 #define PREFIX_IGNORED_ADDR	(PREFIX_ADDR << PREFIX_IGNORED_SHIFT)
 #define PREFIX_IGNORED_LOCK	(PREFIX_LOCK << PREFIX_IGNORED_SHIFT)
+#define PREFIX_IGNORED_REX2	(PREFIX_REX2 << PREFIX_IGNORED_SHIFT)
 
 /* Opcode prefixes.  */
 #define PREFIX_OPCODE		(PREFIX_REPZ \
@@ -2390,22 +2405,30 @@ static const char intel_index16[][6] = {
 
 static const char att_names64[][8] = {
   "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi",
-  "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15"
+  "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15",
+  "%r16", "%r17", "%r18", "%r19", "%r20", "%r21", "%r22", "%r23",
+  "%r24", "%r25", "%r26", "%r27", "%r28", "%r29", "%r30", "%r31"
 };
 static const char att_names32[][8] = {
   "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi",
-  "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d"
+  "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d",
+  "%r16d", "%r17d", "%r18d", "%r19d", "%r20d", "%r21d", "%r22d", "%r23d",
+  "%r24d", "%r25d", "%r26d", "%r27d", "%r28d", "%r29d", "%r30d", "%r31d"
 };
 static const char att_names16[][8] = {
   "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di",
-  "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w"
+  "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w",
+  "%r16w", "%r17w", "%r18w", "%r19w", "%r20w", "%r21w", "%r22w", "%r23w",
+  "%r24w", "%r25w", "%r26w", "%r27w", "%r28w", "%r29w", "%r30w", "%r31w"
 };
 static const char att_names8[][8] = {
   "%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh",
 };
 static const char att_names8rex[][8] = {
   "%al", "%cl", "%dl", "%bl", "%spl", "%bpl", "%sil", "%dil",
-  "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b"
+  "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b",
+  "%r16b", "%r17b", "%r18b", "%r19b", "%r20b", "%r21b", "%r22b", "%r23b",
+  "%r24b", "%r25b", "%r26b", "%r27b", "%r28b", "%r29b", "%r30b", "%r31b"
 };
 static const char att_names_seg[][4] = {
   "%es", "%cs", "%ss", "%ds", "%fs", "%gs", "%?", "%?",
@@ -2794,9 +2817,9 @@ static const struct dis386 reg_table[][8] = {
     { Bad_Opcode },
     { "cmpxchg8b", { { CMPXCHG8B_Fixup, q_mode } }, 0 },
     { Bad_Opcode },
-    { "xrstors", { FXSAVE }, 0 },
-    { "xsavec", { FXSAVE }, 0 },
-    { "xsaves", { FXSAVE }, 0 },
+    { "xrstors", { FXSAVE }, PREFIX_IGNORED_REX2 },
+    { "xsavec", { FXSAVE }, PREFIX_IGNORED_REX2 },
+    { "xsaves", { FXSAVE }, PREFIX_IGNORED_REX2 },
     { MOD_TABLE (MOD_0FC7_REG_6) },
     { MOD_TABLE (MOD_0FC7_REG_7) },
   },
@@ -3364,7 +3387,7 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_0FAE_REG_4_MOD_0 */
   {
-    { "xsave",	{ FXSAVE }, 0 },
+    { "xsave",	{ FXSAVE }, PREFIX_IGNORED_REX2 },
     { "ptwrite{%LQ|}", { Edq }, 0 },
   },
 
@@ -3382,7 +3405,7 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_0FAE_REG_6_MOD_0 */
   {
-    { "xsaveopt",	{ FXSAVE }, PREFIX_OPCODE },
+    { "xsaveopt",	{ FXSAVE }, PREFIX_OPCODE | PREFIX_IGNORED_REX2 },
     { "clrssbsy",	{ Mq }, PREFIX_OPCODE },
     { "clwb",	{ Mb }, PREFIX_OPCODE },
   },
@@ -8125,7 +8148,7 @@ static const struct dis386 mod_table[][2] = {
   },
   {
     /* MOD_0FAE_REG_5 */
-    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE },
+    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE | PREFIX_IGNORED_REX2 },
     { PREFIX_TABLE (PREFIX_0FAE_REG_5_MOD_3) },
   },
   {
@@ -8323,6 +8346,24 @@ ckprefix (instr_info *ins)
 	    return ckp_okay;
 	  ins->last_rex_prefix = i;
 	  break;
+	/* REX2 must be the last prefix. */
+	case 0xd5:
+	  if (ins->address_mode == mode_64bit)
+	    {
+	      if (ins->last_rex_prefix >= 0)
+		return ckp_bogus;
+
+	      ins->codep++;
+	      if (!fetch_code (ins->info, ins->codep + 1))
+		return ckp_fetch_error;
+	      ins->rex2_payload = *ins->codep;
+	      ins->rex2 = ins->rex2_payload >> 4;
+	      ins->rex = (ins->rex2_payload & 0xf) | REX_OPCODE;
+	      ins->codep++;
+	      ins->last_rex2_prefix = i;
+	      ins->all_prefixes[i] = REX2_OPCODE;
+	    }
+	  return ckp_okay;
 	case 0xf3:
 	  ins->prefixes |= PREFIX_REPZ;
 	  ins->last_repz_prefix = i;
@@ -8490,6 +8531,8 @@ prefix_name (enum address_mode mode, uint8_t pref, int sizeflag)
       return "bnd";
     case NOTRACK_PREFIX:
       return "notrack";
+    case REX2_OPCODE:
+      return "rex2";
     default:
       return NULL;
     }
@@ -8628,6 +8671,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
       break;
 
     case USE_3BYTE_TABLE:
+      if (ins->last_rex2_prefix >= 0)
+	return &bad_opcode;
       if (!fetch_code (ins->info, ins->codep + 2))
 	return &err_opcode;
       vindex = *ins->codep++;
@@ -8751,6 +8796,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
       break;
 
     case USE_VEX_C4_TABLE:
+      if (ins->last_rex2_prefix >= 0)
+	return &bad_opcode;
       /* VEX prefix.  */
       if (!fetch_code (ins->info, ins->codep + 3))
 	return &err_opcode;
@@ -8812,6 +8859,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
       break;
 
     case USE_VEX_C5_TABLE:
+      if (ins->last_rex2_prefix >= 0)
+	return &bad_opcode;
       /* VEX prefix.  */
       if (!fetch_code (ins->info, ins->codep + 2))
 	return &err_opcode;
@@ -8853,6 +8902,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
       break;
 
     case USE_EVEX_TABLE:
+      if (ins->last_rex2_prefix >= 0)
+	return &bad_opcode;
       ins->two_source_ops = false;
       /* EVEX prefix.  */
       ins->vex.evex = true;
@@ -9128,6 +9179,7 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
     .last_data_prefix = -1,
     .last_addr_prefix = -1,
     .last_rex_prefix = -1,
+    .last_rex2_prefix = -1,
     .last_seg_prefix = -1,
     .fwait_prefix = -1,
   };
@@ -9292,13 +9344,17 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
       goto out;
     }
 
-  if (*ins.codep == 0x0f)
+  /* M0 in rex2 prefix represents map0 or map1.  */
+  if (*ins.codep == 0x0f || (ins.rex2 & 0x8))
     {
       unsigned char threebyte;
 
-      ins.codep++;
-      if (!fetch_code (info, ins.codep + 1))
-	goto fetch_error_out;
+      if (!ins.rex2)
+	{
+	  ins.codep++;
+	  if (!fetch_code (info, ins.codep + 1))
+	    goto fetch_error_out;
+	}
       threebyte = *ins.codep;
       dp = &dis386_twobyte[threebyte];
       ins.need_modrm = twobyte_has_modrm[threebyte];
@@ -9454,6 +9510,14 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
       goto out;
     }
 
+  if ((dp->prefix_requirement & PREFIX_IGNORED_REX2)
+      && ins.last_rex2_prefix >= 0)
+    {
+      i386_dis_printf (info, dis_style_text, "(bad)");
+      ret = ins.end_codep - priv.the_buffer;
+      goto out;
+    }
+
   switch (dp->prefix_requirement)
     {
     case PREFIX_DATA:
@@ -9468,6 +9532,7 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
       ins.used_prefixes |= PREFIX_DATA;
       /* Fall through.  */
     case PREFIX_OPCODE:
+    case PREFIX_OPCODE | PREFIX_IGNORED_REX2:
       /* If the mandatory PREFIX_REPZ/PREFIX_REPNZ/PREFIX_DATA prefix is
 	 unused, opcode is invalid.  Since the PREFIX_DATA prefix may be
 	 used by putop and MMX/SSE operand and may be overridden by the
@@ -9510,9 +9575,17 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
 
   /* Check if the REX prefix is used.  */
   if ((ins.rex ^ ins.rex_used) == 0
-      && !ins.need_vex && ins.last_rex_prefix >= 0)
+      && !ins.need_vex && ins.last_rex_prefix >= 0
+      && ins.last_rex2_prefix < 0)
     ins.all_prefixes[ins.last_rex_prefix] = 0;
 
+  /* Check if the REX2 prefix is used.  */
+  if (ins.last_rex2_prefix >= 0
+      && ((((ins.rex2 & 0x7) ^ (ins.rex2_used & 0x7)) == 0
+	   && (ins.rex2 & 0x7))
+	  || dp == &bad_opcode))
+    ins.all_prefixes[ins.last_rex2_prefix] = 0;
+
   /* Check if the SEG prefix is used.  */
   if ((ins.prefixes & (PREFIX_CS | PREFIX_SS | PREFIX_DS | PREFIX_ES
 		       | PREFIX_FS | PREFIX_GS)) != 0
@@ -9541,7 +9614,10 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
 	if (name == NULL)
 	  abort ();
 	prefix_length += strlen (name) + 1;
-	i386_dis_printf (info, dis_style_mnemonic, "%s ", name);
+	if (ins.all_prefixes[i] == REX2_OPCODE)
+	  i386_dis_printf (info, dis_style_mnemonic, "{%s} ", name);
+	else
+	  i386_dis_printf (info, dis_style_mnemonic, "%s ", name);
       }
 
   /* Check maximum code length.  */
@@ -11086,8 +11162,11 @@ print_register (instr_info *ins, unsigned int reg, unsigned int rexmask,
     ins->illegal_masking = true;
 
   USED_REX (rexmask);
+  USED_REX2 (rexmask);
   if (ins->rex & rexmask)
     reg += 8;
+  if (ins->rex2 & rexmask)
+    reg += 16;
 
   switch (bytemode)
     {
@@ -11307,6 +11386,7 @@ static bool
 OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
 {
   int add = (ins->rex & REX_B) ? 8 : 0;
+  add += (ins->rex2 & REX_B) ? 16 : 0;
   int riprel = 0;
   int shift;
 
@@ -11414,6 +11494,7 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
     shift = 0;
 
   USED_REX (REX_B);
+  USED_REX2 (REX_B);
   if (ins->intel_syntax)
     intel_operand_size (ins, bytemode, sizeflag);
   append_seg (ins);
@@ -11444,8 +11525,11 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
 	{
 	  vindex = ins->sib.index;
 	  USED_REX (REX_X);
+	  USED_REX2 (REX_X);
 	  if (ins->rex & REX_X)
 	    vindex += 8;
+	  if (ins->rex2 & REX_X)
+	    vindex += 16;
 	  switch (bytemode)
 	    {
 	    case vex_vsib_d_w_dq_mode:
@@ -11866,7 +11950,7 @@ static bool
 OP_REG (instr_info *ins, int code, int sizeflag)
 {
   const char *s;
-  int add;
+  int add = 0;
 
   switch (code)
     {
@@ -11877,10 +11961,11 @@ OP_REG (instr_info *ins, int code, int sizeflag)
     }
 
   USED_REX (REX_B);
+  USED_REX2 (REX_B);
   if (ins->rex & REX_B)
     add = 8;
-  else
-    add = 0;
+  if (ins->rex2 & REX_B)
+    add += 16;
 
   switch (code)
     {
@@ -12590,8 +12675,11 @@ OP_EX (instr_info *ins, int bytemode, int sizeflag)
 
   reg = ins->modrm.rm;
   USED_REX (REX_B);
+  USED_REX2 (REX_B);
   if (ins->rex & REX_B)
     reg += 8;
+  if (ins->rex2 & REX_B)
+    reg += 16;
   if (ins->vex.evex)
     {
       USED_REX (REX_X);
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index cfc5a7a6172..6b8eb729797 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -380,6 +380,7 @@ static bitfield cpu_flags[] =
   BITFIELD (RAO_INT),
   BITFIELD (FRED),
   BITFIELD (LKGS),
+  BITFIELD (APX_F),
   BITFIELD (MWAITX),
   BITFIELD (CLZERO),
   BITFIELD (OSPKE),
@@ -469,6 +470,7 @@ static bitfield opcode_modifiers[] =
   BITFIELD (ATTSyntax),
   BITFIELD (IntelSyntax),
   BITFIELD (ISA64),
+  BITFIELD (No_egpr),
 };
 
 #define CLASS(n) #n, n
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 149ae0e950c..a055db5ce42 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -317,6 +317,8 @@ enum i386_cpu
   CpuAVX512F,
   /* Intel AVX-512 VL Instructions support required.  */
   CpuAVX512VL,
+  /* Intel APX Instructions support required.  */
+  CpuAPX_F,
   /* Not supported in the 64bit mode  */
   CpuNo64,
 
@@ -352,6 +354,7 @@ enum i386_cpu
 		   cpuhle:1, \
 		   cpuavx512f:1, \
 		   cpuavx512vl:1, \
+		   cpuapx_f:1, \
       /* NOTE: This field needs to remain last. */ \
 		   cpuno64:1
 
@@ -742,6 +745,10 @@ enum
 #define INTEL64		2
 #define INTEL64ONLY	3
   ISA64,
+
+  /* egprs (r16-r31) on instruction illegal.  */
+  No_egpr,
+
   /* The last bitfield in i386_opcode_modifier.  */
   Opcode_Modifier_Num
 };
@@ -789,6 +796,7 @@ typedef struct i386_opcode_modifier
   unsigned int attsyntax:1;
   unsigned int intelsyntax:1;
   unsigned int isa64:2;
+  unsigned int no_egpr:1;
 } i386_opcode_modifier;
 
 /* Operand classes.  */
@@ -988,7 +996,7 @@ typedef struct insn_template
      AMD 3DNow! instructions.
      If this template has no extension opcode (the usual case) use None
      Instructions */
-  signed int extension_opcode:9;
+  signed int extension_opcode:0xA;
 #define None (-1)		/* If no extension_opcode is possible.  */
 
 /* Pseudo prefixes.  */
@@ -1001,7 +1009,8 @@ typedef struct insn_template
 #define Prefix_VEX3		6	/* {vex3} */
 #define Prefix_EVEX		7	/* {evex} */
 #define Prefix_REX		8	/* {rex} */
-#define Prefix_NoOptimize	9	/* {nooptimize} */
+#define Prefix_REX2		9	/* {rex2} */
+#define Prefix_NoOptimize	0xA	/* {nooptimize} */
 
   /* the bits in opcode_modifier are used to generate the final opcode from
      the base_opcode.  These bits also are used to detect alternate forms of
@@ -1028,6 +1037,7 @@ typedef struct
 #define RegRex	    0x1  /* Extended register.  */
 #define RegRex64    0x2  /* Extended 8 bit register.  */
 #define RegVRex	    0x4  /* Extended vector register.  */
+#define RegRex2	    0x8  /* Extended rex2 interge register.  */
   unsigned char reg_num;
 #define RegIP	((unsigned char ) ~0)
 /* EIZ and RIZ are fake index registers.  */
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index a534c53ca17..80248e5b72c 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -889,7 +889,7 @@ rex.wrxb, 0x4f, x64, NoSuf|IsPrefix, {}
 <pseudopfx:ident:cpu, disp8:Disp8:0, disp16:Disp16:0, disp32:Disp32:0, +
                       load:Load:0, store:Store:0, +
                       vex:VEX:0, vex2:VEX:0, vex3:VEX3:0, evex:EVEX:0, +
-                      rex:REX:x64, nooptimize:NoOptimize:0>
+                      rex:REX:x64, rex2:REX2:x64, nooptimize:NoOptimize:0>
 
 {<pseudopfx>}, PSEUDO_PREFIX/Prefix_<pseudopfx:ident>, <pseudopfx:cpu>, NoSuf|IsPrefix, {}
 
@@ -1422,16 +1422,16 @@ crc32, 0xf20f38f0, SSE4_2|x64, W|Modrm|No_wSuf|No_lSuf|No_sSuf, { Reg8|Reg64|Uns
 
 // xsave/xrstor New Instructions.
 
-xsave, 0xfae/4, Xsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Unspecified|BaseIndex }
-xsave64, 0xfae/4, Xsave|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
-xrstor, 0xfae/5, Xsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Unspecified|BaseIndex }
-xrstor64, 0xfae/5, Xsave|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
+xsave, 0xfae/4, Xsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_egpr, { Unspecified|BaseIndex }
+xsave64, 0xfae/4, Xsave|x64, Modrm|NoSuf|Size64|No_egpr, { Unspecified|BaseIndex }
+xrstor, 0xfae/5, Xsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_egpr, { Unspecified|BaseIndex }
+xrstor64, 0xfae/5, Xsave|x64, Modrm|NoSuf|Size64|No_egpr, { Unspecified|BaseIndex }
 xgetbv, 0xf01d0, Xsave, NoSuf, {}
 xsetbv, 0xf01d1, Xsave, NoSuf, {}
 
 // xsaveopt
-xsaveopt, 0xfae/6, Xsaveopt, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Unspecified|BaseIndex }
-xsaveopt64, 0xfae/6, Xsaveopt|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
+xsaveopt, 0xfae/6, Xsaveopt, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_egpr, { Unspecified|BaseIndex }
+xsaveopt64, 0xfae/6, Xsaveopt|x64, Modrm|NoSuf|Size64|No_egpr, { Unspecified|BaseIndex }
 
 // AES instructions.
 
@@ -2492,17 +2492,17 @@ clflushopt, 0x660fae/7, ClflushOpt, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex
 
 // XSAVES/XRSTORS instructions.
 
-xrstors, 0xfc7/3, XSAVES, Modrm|NoSuf, { Unspecified|BaseIndex }
-xrstors64, 0xfc7/3, XSAVES|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
-xsaves, 0xfc7/5, XSAVES, Modrm|NoSuf, { Unspecified|BaseIndex }
-xsaves64, 0xfc7/5, XSAVES|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
+xrstors, 0xfc7/3, XSAVES, Modrm|NoSuf|No_egpr, { Unspecified|BaseIndex }
+xrstors64, 0xfc7/3, XSAVES|x64, Modrm|NoSuf|Size64|No_egpr, { Unspecified|BaseIndex }
+xsaves, 0xfc7/5, XSAVES, Modrm|NoSuf|No_egpr, { Unspecified|BaseIndex }
+xsaves64, 0xfc7/5, XSAVES|x64, Modrm|NoSuf|Size64|No_egpr, { Unspecified|BaseIndex }
 
 // XSAVES instructions end.
 
 // XSAVEC instructions.
 
-xsavec, 0xfc7/4, XSAVEC, Modrm|NoSuf, { Unspecified|BaseIndex }
-xsavec64, 0xfc7/4, XSAVEC|x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
+xsavec, 0xfc7/4, XSAVEC, Modrm|NoSuf|No_egpr, { Unspecified|BaseIndex }
+xsavec64, 0xfc7/4, XSAVEC|x64, Modrm|NoSuf|Size64|No_egpr, { Unspecified|BaseIndex }
 
 // XSAVEC instructions end.
 
diff --git a/opcodes/i386-reg.tbl b/opcodes/i386-reg.tbl
index 2ac56e3fd0b..8fead35e320 100644
--- a/opcodes/i386-reg.tbl
+++ b/opcodes/i386-reg.tbl
@@ -43,6 +43,22 @@ r12b, Class=Reg|Byte, RegRex|RegRex64, 4, Dw2Inval, Dw2Inval
 r13b, Class=Reg|Byte, RegRex|RegRex64, 5, Dw2Inval, Dw2Inval
 r14b, Class=Reg|Byte, RegRex|RegRex64, 6, Dw2Inval, Dw2Inval
 r15b, Class=Reg|Byte, RegRex|RegRex64, 7, Dw2Inval, Dw2Inval
+r16b, Class=Reg|Byte, RegRex2|RegRex64, 0, Dw2Inval, Dw2Inval
+r17b, Class=Reg|Byte, RegRex2|RegRex64, 1, Dw2Inval, Dw2Inval
+r18b, Class=Reg|Byte, RegRex2|RegRex64, 2, Dw2Inval, Dw2Inval
+r19b, Class=Reg|Byte, RegRex2|RegRex64, 3, Dw2Inval, Dw2Inval
+r20b, Class=Reg|Byte, RegRex2|RegRex64, 4, Dw2Inval, Dw2Inval
+r21b, Class=Reg|Byte, RegRex2|RegRex64, 5, Dw2Inval, Dw2Inval
+r22b, Class=Reg|Byte, RegRex2|RegRex64, 6, Dw2Inval, Dw2Inval
+r23b, Class=Reg|Byte, RegRex2|RegRex64, 7, Dw2Inval, Dw2Inval
+r24b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 0, Dw2Inval, Dw2Inval
+r25b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 1, Dw2Inval, Dw2Inval
+r26b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 2, Dw2Inval, Dw2Inval
+r27b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 3, Dw2Inval, Dw2Inval
+r28b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 4, Dw2Inval, Dw2Inval
+r29b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 5, Dw2Inval, Dw2Inval
+r30b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 6, Dw2Inval, Dw2Inval
+r31b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 7, Dw2Inval, Dw2Inval
 // 16 bit regs
 ax, Class=Reg|Instance=Accum|Word, 0, 0, Dw2Inval, Dw2Inval
 cx, Class=Reg|Word, 0, 1, Dw2Inval, Dw2Inval
@@ -60,6 +76,22 @@ r12w, Class=Reg|Word, RegRex, 4, Dw2Inval, Dw2Inval
 r13w, Class=Reg|Word, RegRex, 5, Dw2Inval, Dw2Inval
 r14w, Class=Reg|Word, RegRex, 6, Dw2Inval, Dw2Inval
 r15w, Class=Reg|Word, RegRex, 7, Dw2Inval, Dw2Inval
+r16w, Class=Reg|Word, RegRex2, 0, Dw2Inval, Dw2Inval
+r17w, Class=Reg|Word, RegRex2, 1, Dw2Inval, Dw2Inval
+r18w, Class=Reg|Word, RegRex2, 2, Dw2Inval, Dw2Inval
+r19w, Class=Reg|Word, RegRex2, 3, Dw2Inval, Dw2Inval
+r20w, Class=Reg|Word, RegRex2, 4, Dw2Inval, Dw2Inval
+r21w, Class=Reg|Word, RegRex2, 5, Dw2Inval, Dw2Inval
+r22w, Class=Reg|Word, RegRex2, 6, Dw2Inval, Dw2Inval
+r23w, Class=Reg|Word, RegRex2, 7, Dw2Inval, Dw2Inval
+r24w, Class=Reg|Word, RegRex2|RegRex, 0, Dw2Inval, Dw2Inval
+r25w, Class=Reg|Word, RegRex2|RegRex, 1, Dw2Inval, Dw2Inval
+r26w, Class=Reg|Word, RegRex2|RegRex, 2, Dw2Inval, Dw2Inval
+r27w, Class=Reg|Word, RegRex2|RegRex, 3, Dw2Inval, Dw2Inval
+r28w, Class=Reg|Word, RegRex2|RegRex, 4, Dw2Inval, Dw2Inval
+r29w, Class=Reg|Word, RegRex2|RegRex, 5, Dw2Inval, Dw2Inval
+r30w, Class=Reg|Word, RegRex2|RegRex, 6, Dw2Inval, Dw2Inval
+r31w, Class=Reg|Word, RegRex2|RegRex, 7, Dw2Inval, Dw2Inval
 // 32 bit regs
 eax, Class=Reg|Instance=Accum|Dword|BaseIndex, 0, 0, 0, Dw2Inval
 ecx, Class=Reg|Instance=RegC|Dword|BaseIndex, 0, 1, 1, Dw2Inval
@@ -77,6 +109,22 @@ r12d, Class=Reg|Dword|BaseIndex, RegRex, 4, Dw2Inval, Dw2Inval
 r13d, Class=Reg|Dword|BaseIndex, RegRex, 5, Dw2Inval, Dw2Inval
 r14d, Class=Reg|Dword|BaseIndex, RegRex, 6, Dw2Inval, Dw2Inval
 r15d, Class=Reg|Dword|BaseIndex, RegRex, 7, Dw2Inval, Dw2Inval
+r16d, Class=Reg|Dword|BaseIndex, RegRex2, 0, Dw2Inval, Dw2Inval
+r17d, Class=Reg|Dword|BaseIndex, RegRex2, 1, Dw2Inval, Dw2Inval
+r18d, Class=Reg|Dword|BaseIndex, RegRex2, 2, Dw2Inval, Dw2Inval
+r19d, Class=Reg|Dword|BaseIndex, RegRex2, 3, Dw2Inval, Dw2Inval
+r20d, Class=Reg|Dword|BaseIndex, RegRex2, 4, Dw2Inval, Dw2Inval
+r21d, Class=Reg|Dword|BaseIndex, RegRex2, 5, Dw2Inval, Dw2Inval
+r22d, Class=Reg|Dword|BaseIndex, RegRex2, 6, Dw2Inval, Dw2Inval
+r23d, Class=Reg|Dword|BaseIndex, RegRex2, 7, Dw2Inval, Dw2Inval
+r24d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 0, Dw2Inval, Dw2Inval
+r25d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 1, Dw2Inval, Dw2Inval
+r26d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 2, Dw2Inval, Dw2Inval
+r27d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 3, Dw2Inval, Dw2Inval
+r28d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 4, Dw2Inval, Dw2Inval
+r29d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 5, Dw2Inval, Dw2Inval
+r30d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 6, Dw2Inval, Dw2Inval
+r31d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 7, Dw2Inval, Dw2Inval
 rax, Class=Reg|Instance=Accum|Qword|BaseIndex, 0, 0, Dw2Inval, 0
 rcx, Class=Reg|Instance=RegC|Qword|BaseIndex, 0, 1, Dw2Inval, 2
 rdx, Class=Reg|Instance=RegD|Qword|BaseIndex, 0, 2, Dw2Inval, 1
@@ -93,6 +141,22 @@ r12, Class=Reg|Qword|BaseIndex, RegRex, 4, Dw2Inval, 12
 r13, Class=Reg|Qword|BaseIndex, RegRex, 5, Dw2Inval, 13
 r14, Class=Reg|Qword|BaseIndex, RegRex, 6, Dw2Inval, 14
 r15, Class=Reg|Qword|BaseIndex, RegRex, 7, Dw2Inval, 15
+r16, Class=Reg|Qword|BaseIndex, RegRex2, 0, Dw2Inval, 130
+r17, Class=Reg|Qword|BaseIndex, RegRex2, 1, Dw2Inval, 131
+r18, Class=Reg|Qword|BaseIndex, RegRex2, 2, Dw2Inval, 132
+r19, Class=Reg|Qword|BaseIndex, RegRex2, 3, Dw2Inval, 133
+r20, Class=Reg|Qword|BaseIndex, RegRex2, 4, Dw2Inval, 134
+r21, Class=Reg|Qword|BaseIndex, RegRex2, 5, Dw2Inval, 135
+r22, Class=Reg|Qword|BaseIndex, RegRex2, 6, Dw2Inval, 136
+r23, Class=Reg|Qword|BaseIndex, RegRex2, 7, Dw2Inval, 137
+r24, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 0, Dw2Inval, 138
+r25, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 1, Dw2Inval, 139
+r26, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 2, Dw2Inval, 140
+r27, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 3, Dw2Inval, 141
+r28, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 4, Dw2Inval, 142
+r29, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 5, Dw2Inval, 143
+r30, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 6, Dw2Inval, 144
+r31, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 7, Dw2Inval, 145
 // Vector mask registers.
 k0, Class=RegMask, 0, 0, 93, 118
 k1, Class=RegMask, 0, 1, 94, 119
-- 
2.25.1


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

* [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
  2023-09-19 15:25 ` [PATCH 1/8] Support APX GPR32 with rex2 prefix Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-22 10:12   ` Jan Beulich
                     ` (2 more replies)
  2023-09-19 15:25 ` [PATCH 3/8] Add tests for " Cui, Lili
                   ` (5 subsequent siblings)
  7 siblings, 3 replies; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu

EVEX extension of legacy instructions:
  All promoted legacy instructions are placed in EVEX map 4, which is
  currently reserved.
EVEX extension of EVEX instructions:
  All existing EVEX instructions are extended by APX using the extended
  EVEX prefix, so that they can access all 32 GPRs.
EVEX extension of VEX instructions:
  Promoting a VEX instruction into the EVEX space does not change the map
  id, the opcode, or the operand encoding of the VEX instruction.

gas/ChangeLog:

        * config/tc-i386.c (is_any_apx_evex_encoding):
        New func. Test apx evex encoding.
        (build_legacy_insns_with_apx_encoding): New func.
        (build_evex_insns_with_extend_evex_prefix): New func.
        Build evex insns with gpr32 use extend evex prefix.
        (md_assemble): Handle apx with rex2 or evex encoding.
        (output_insn): Handle apx evex encoding.

opcode/ChangeLog:

        * i386-opc.h (SPACE_EVEXMAP4): New define for legacy insn
        promote to evex.
        * i386-opc.tbl: Handle some legacy and vex insns don't
        support gpr32. And add some legacy insn (map2 / 3) promote
        to evex.
        * i386-gen.c (process_i386_opcode_modifier): set no_egpr for
        VEX instructions.
        * i386-tbl.h: Regenerated.
        * i386-dis-evex-len.h: Handle EVEX_LEN_0F38F2, EVEX_LEN_0F38F3.
        * i386-dis-evex-mod.h: Handle MOD_EVEX_MAP4_65,
        MOD_EVEX_MAP4_66_PREFIX_0, MOD_EVEX_MAP4_8A_W_0,
        MOD_EVEX_MAP4_DA_PREFIX_1, MOD_EVEX_MAP4_DB_PREFIX_1,
        MOD_EVEX_MAP4_DC_PREFIX_1, MOD_EVEX_MAP4_DD_PREFIX_1,
        MOD_EVEX_MAP4_DE_PREFIX_1, MOD_EVEX_MAP4_DF_PREFIX_1,
        MOD_EVEX_MAP4_F8_PREFIX_1, MOD_EVEX_MAP4_F8_PREFIX_2,
        MOD_EVEX_MAP4_F8_PREFIX_3, MOD_EVEX_MAP4_F9,
        MOD_EVEX_MAP4_8B.
        * i386-dis-evex-w.h: Handle EVEX_W_MAP4_8A.
        * i386-dis-evex-prefix.h: Handle PREFIX_EVEX_MAP4_60,
        PREFIX_EVEX_MAP4_61, PREFIX_EVEX_MAP4_66,
        PREFIX_EVEX_MAP4_8B_M_0, PREFIX_EVEX_MAP4_D8,
        PREFIX_EVEX_MAP4_DA, PREFIX_EVEX_MAP4_DB,
        PREFIX_EVEX_MAP4_DC, PREFIX_EVEX_MAP4_DD,
        PREFIX_EVEX_MAP4_DE, PREFIX_EVEX_MAP4_DF,
        PREFIX_EVEX_MAP4_F0, PREFIX_EVEX_MAP4_F1,
        PREFIX_EVEX_MAP4_F2, PREFIX_EVEX_MAP4_F8,
        PREFIX_EVEX_MAP4_FC.
        * i386-dis-evex-reg.h: Handle REG_EVEX_MAP4_D8_PREFIX_1,
        REG_EVEX_0F38F3_L_0.
        * i386-dis-evex-x86.h: Handle X86_64_EVEX_0F90, X86_64_EVEX_0F91,
        X86_64_EVEX_0F92, X86_64_EVEX_0F93, X86_64_EVEX_0F38F2,
        X86_64_EVEX_0F38F3, X86_64_EVEX_0F38F5, X86_64_EVEX_0F38F6,
        X86_64_EVEX_0F38F7, X86_64_EVEX_0F3AF0, X86_64_EVEX_MAP7_F8.
        * i386-dis-evex.h: Add EVEX_MAP4_ for legacy insn
        promote to apx to use gpr32, and add vex use gpr32 promote to evex.
        Add EVEX_MAP7.
        * opcodes/i386-dis.c (REG enum): Add REG_EVEX_MAP4_D8_PREFIX_1.
        (MOD enum): Add MOD_EVEX_MAP4_65, MOD_EVEX_MAP4_66_PREFIX_0,
        MOD_EVEX_MAP4_8A_W_0, MOD_EVEX_MAP4_8B,
        MOD_EVEX_MAP4_DA_PREFIX_1, MOD_EVEX_MAP4_DB_PREFIX_1,
        MOD_EVEX_MAP4_DC_PREFIX_1, MOD_EVEX_MAP4_DD_PREFIX_1,
        MOD_EVEX_MAP4_DE_PREFIX_1, MOD_EVEX_MAP4_DF_PREFIX_1,
        MOD_EVEX_MAP4_F8_PREFIX_1, MOD_EVEX_MAP4_F8_PREFIX_2,
        MOD_EVEX_MAP4_F8_PREFIX_3, MOD_EVEX_MAP4_F9,
        REG_EVEX_0F38F3_L_0.
        (PREFIX enum): Add PREFIX_EVEX_MAP4_60, PREFIX_EVEX_MAP4_61,
        PREFIX_EVEX_MAP4_66, PREFIX_EVEX_MAP4_8B_M_0,
        PREFIX_EVEX_MAP4_D8, PREFIX_EVEX_MAP4_DA,
        PREFIX_EVEX_MAP4_DB, PREFIX_EVEX_MAP4_DC,
        PREFIX_EVEX_MAP4_DD, PREFIX_EVEX_MAP4_DE,
        PREFIX_EVEX_MAP4_DF, PREFIX_EVEX_MAP4_F0,
        PREFIX_EVEX_MAP4_F1, PREFIX_EVEX_MAP4_F2,
        PREFIX_EVEX_MAP4_F8, PREFIX_EVEX_MAP4_FC.
        (EVEX_LEN_enum): Add EVEX_LEN_0F38F2, EVEX_LEN_0F38F3.
        (EVEX_X86_enum): Add X86_64_EVEX_0F90, X86_64_EVEX_0F91,
        X86_64_EVEX_0F92, X86_64_EVEX_0F93, X86_64_EVEX_0F3849,
        X86_64_EVEX_0F384B, X86_64_EVEX_0F38E0, X86_64_EVEX_0F38E1,
        X86_64_EVEX_0F38E2, X86_64_EVEX_0F38E3, X86_64_EVEX_0F38E4,
        X86_64_EVEX_0F38E5, X86_64_EVEX_0F38E6, X86_64_EVEX_0F38E7,
        X86_64_EVEX_0F38E8, X86_64_EVEX_0F38E9, X86_64_EVEX_0F38EA,
        X86_64_EVEX_0F38EB, X86_64_EVEX_0F38EC, X86_64_EVEX_0F38ED,
        X86_64_EVEX_0F38EE, X86_64_EVEX_0F38EF, X86_64_EVEX_0F38F2,
        X86_64_EVEX_0F38F3, X86_64_EVEX_0F38F5, X86_64_EVEX_0F38F6,
        X86_64_EVEX_0F38F7, X86_64_EVEX_0F3AF0.
        (EVEX_MAP4): New define.
        (EVEX_MAP7): New.
        (evex_type): Diito.
        (get_valid_dis386): Decode insn erex in extend evex prefix.
        Handle EVEX_MAP4, Handle EVEX_MAP7.
        (print_register): Handle apx instructions decode.
        (OP_E_memory): Diito.
        (OP_G): Ditto.
---
 gas/config/tc-i386.c           |  93 +++-
 opcodes/i386-dis-evex-len.h    |  10 +
 opcodes/i386-dis-evex-mod.h    |  50 ++
 opcodes/i386-dis-evex-prefix.h |  83 ++++
 opcodes/i386-dis-evex-reg.h    |  14 +
 opcodes/i386-dis-evex-x86.h    | 140 ++++++
 opcodes/i386-dis-evex.h        | 838 ++++++++++++++++++++++++++++-----
 opcodes/i386-dis.c             | 131 +++++-
 opcodes/i386-gen.c             |  10 +
 opcodes/i386-opc.h             |   2 +
 opcodes/i386-opc.tbl           |  80 ++++
 11 files changed, 1299 insertions(+), 152 deletions(-)
 create mode 100644 opcodes/i386-dis-evex-x86.h

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 51486985919..48916bc3846 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1945,6 +1945,30 @@ cpu_flags_match (const insn_template *t)
 		  && (!x.bitfield.cpuvpclmulqdq || cpu.bitfield.cpuvpclmulqdq))
 		match |= CPU_FLAGS_ARCH_MATCH;
 	    }
+	  else if (x.bitfield.cpuapx_f)
+	    {
+	      if (cpu.bitfield.cpuapx_f
+		  && (!x.bitfield.cpumovbe || cpu.bitfield.cpumovbe)
+		  && (!x.bitfield.cpuept || cpu.bitfield.cpuept)
+		  && (!x.bitfield.cpuinvpcid || cpu.bitfield.cpuinvpcid)
+		  && (!x.bitfield.cpusse4_2 || cpu.bitfield.cpusse4_2)
+		  && (!x.bitfield.cpubmi2 || cpu.bitfield.cpubmi2)
+		  && (!x.bitfield.cpubmi || cpu.bitfield.cpubmi)
+		  && (!x.bitfield.cpuadx || cpu.bitfield.cpuadx)
+		  && (!x.bitfield.cpusha || cpu.bitfield.cpusha)
+		  && (!x.bitfield.cpuavx512bw || cpu.bitfield.cpuavx512bw)
+		  && (!x.bitfield.cpuavx512dq || cpu.bitfield.cpuavx512dq)
+		  && (!x.bitfield.cpuavx512f || cpu.bitfield.cpuavx512f)
+		  && (!x.bitfield.cpushstk || cpu.bitfield.cpushstk)
+		  && (!x.bitfield.cpumovdir64b || cpu.bitfield.cpumovdir64b)
+		  && (!x.bitfield.cpumovdiri || cpu.bitfield.cpumovdiri)
+		  && (!x.bitfield.cpuenqcmd || cpu.bitfield.cpuenqcmd)
+		  && (!x.bitfield.cpukl || cpu.bitfield.cpukl)
+		  && (!x.bitfield.cpuwidekl || cpu.bitfield.cpuwidekl)
+		  && (!x.bitfield.cpucmpccxadd || cpu.bitfield.cpucmpccxadd)
+		  && (!x.bitfield.cpurao_int || cpu.bitfield.cpurao_int))
+		match |= CPU_FLAGS_ARCH_MATCH;
+	    }
 	  else
 	    match |= CPU_FLAGS_ARCH_MATCH;
 	}
@@ -3850,7 +3874,10 @@ is_any_vex_encoding (const insn_template *t)
 static INLINE bool
 is_any_apx_encoding (void)
 {
-  return i.rex2 || i.rex2_encoding;
+  return i.rex2 
+    || i.rex2_encoding
+    || (i.vex.register_specifier
+	&& i.vex.register_specifier->reg_flags & RegRex2);
 }
 
 static INLINE bool
@@ -3859,6 +3886,12 @@ is_any_apx_rex2_encoding (void)
   return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;
 }
 
+static INLINE bool
+is_any_apx_evex_encoding (void)
+{
+  return i.rex2 && i.vex.length == 4;
+}
+
 static unsigned int
 get_broadcast_bytes (const insn_template *t, bool diag)
 {
@@ -4129,6 +4162,50 @@ build_rex2_prefix (void)
 		    | (i.rex2 << 4) | i.rex);
 }
 
+/* Build the EVEX prefix (4-byte) for evex insn
+   | 62h |
+   | `R`X`B`R' | B'mmm |
+   | W | v`v`v`v | `x' | pp |
+   | z| L'L | b | `v | aaa |
+*/
+static void
+build_evex_insns_with_extend_evex_prefix (void)
+{
+  build_evex_prefix ();
+  if (i.rex2 & REX_R)
+    i.vex.bytes[1] &= 0xef;
+  if (i.vex.register_specifier
+      && register_number (i.vex.register_specifier) > 0xf)
+    i.vex.bytes[3] &=0xf7;
+  if (i.rex2 & REX_B)
+    i.vex.bytes[1] |= 0x08;
+  if (i.rex2 & REX_X)
+    i.vex.bytes[2] &= 0xfb;
+}
+
+/* Build the EVEX prefix (4-byte) for legacy insn
+   | 62h |
+   | `R`X`B`R' | B'100 |
+   | W | v`v`v`v | `x' | pp |
+   | 000 | ND | `v | NF | 00 |
+   For legacy insn without ndd nor nf, [vvvvv] must be all zero.  */
+static void
+build_legacy_insns_with_apx_encoding (void)
+{
+  /* map{0,1} of legacy space without ndd or nf could use rex2 prefix.  */
+  if (i.tm.opcode_space <= SPACE_0F
+      && !i.vex.register_specifier && !i.has_nf && !i.has_zero_upper)
+    return build_rex2_prefix ();
+
+  if (i.prefix[DATA_PREFIX] != 0)
+    {
+      i.tm.opcode_modifier.opcodeprefix = PREFIX_0X66;
+      i.prefix[DATA_PREFIX] = 0;
+    }
+
+  build_evex_insns_with_extend_evex_prefix ();
+}
+
 static void
 process_immext (void)
 {
@@ -5544,9 +5621,10 @@ md_assemble (char *line)
   if (is_any_apx_encoding ())
     {
       if (!is_any_vex_encoding (&i.tm)
-	  && i.tm.opcode_space <= SPACE_0F
-	  && !i.vex.register_specifier && !i.has_nf && !i.has_zero_upper)
-	build_rex2_prefix ();
+	  || i.tm.opcode_space == SPACE_EVEXMAP4)
+	build_legacy_insns_with_apx_encoding ();
+      else
+	build_evex_insns_with_extend_evex_prefix ();
 
       /* The individual REX.RXBW bits got consumed.  */
       i.rex &= REX_OPCODE;
@@ -5616,7 +5694,7 @@ md_assemble (char *line)
 	  && (i.rex != 0 || i.rex2!=0)))
     {
       int x;
-      if (!i.rex2)
+      if (!is_any_apx_encoding ())
 	i.rex |= REX_OPCODE;
       for (x = 0; x < 2; x++)
 	{
@@ -7935,7 +8013,8 @@ process_suffix (void)
       if (i.suffix != QWORD_MNEM_SUFFIX
 	  && i.tm.opcode_modifier.mnemonicsize != IGNORESIZE
 	  && !i.tm.opcode_modifier.floatmf
-	  && !is_any_vex_encoding (&i.tm)
+	  && (!is_any_vex_encoding (&i.tm)
+	      || i.tm.opcode_space == SPACE_EVEXMAP4)
 	  && ((i.suffix == LONG_MNEM_SUFFIX) == (flag_code == CODE_16BIT)
 	      || (flag_code == CODE_64BIT
 		  && i.tm.opcode_modifier.jump == JUMP_BYTE)))
@@ -10057,7 +10136,7 @@ output_insn (void)
 
       /* Since the VEX/EVEX prefix contains the implicit prefix, we
 	 don't need the explicit prefix.  */
-      if (!is_any_vex_encoding (&i.tm))
+      if (!is_any_vex_encoding (&i.tm) && !is_any_apx_evex_encoding ())
 	{
 	  switch (i.tm.opcode_modifier.opcodeprefix)
 	    {
diff --git a/opcodes/i386-dis-evex-len.h b/opcodes/i386-dis-evex-len.h
index a02609c50f2..1933a045822 100644
--- a/opcodes/i386-dis-evex-len.h
+++ b/opcodes/i386-dis-evex-len.h
@@ -62,6 +62,16 @@ static const struct dis386 evex_len_table[][3] = {
     { REG_TABLE (REG_EVEX_0F38C7_L_2) },
   },
 
+  /* EVEX_LEN_0F38F2 */
+  {
+    { "andnS",		{ Gdq, VexGdq, Edq }, 0 },
+  },
+
+  /* EVEX_LEN_0F38F3 */
+  {
+    { REG_TABLE(REG_EVEX_0F38F3_L_0) },
+  },
+
   /* EVEX_LEN_0F3A00 */
   {
     { Bad_Opcode },
diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h
index f9f912c5094..5a1326a1b73 100644
--- a/opcodes/i386-dis-evex-mod.h
+++ b/opcodes/i386-dis-evex-mod.h
@@ -1 +1,51 @@
 /* Nothing at present.  */
+  /* MOD_EVEX_MAP4_65 */
+  {
+    { "wrussK",		{ M, Gdq }, PREFIX_DATA },
+  },
+  /* MOD_EVEX_MAP4_66_PREFIX_0 */
+  {
+    { "wrssK",		{ M, Gdq }, 0 },
+  },
+  /* MOD_EVEX_MAP4_DA_PREFIX_1 */
+  {
+    { Bad_Opcode },
+    { "encodekey128", { Gd, Ed }, 0 },
+  },
+  /* MOD_EVEX_MAP4_DB_PREFIX_1 */
+  {
+    { Bad_Opcode },
+    { "encodekey256", { Gd, Ed }, 0 },
+  },
+  /* MOD_EVEX_MAP4_DC_PREFIX_1 */
+  {
+    { "aesenc128kl",    { XM, M }, 0 },
+  },
+  /* MOD_EVEX_MAP4_DD_PREFIX_1 */
+  {
+    { "aesdec128kl",    { XM, M }, 0 },
+  },
+  /* MOD_EVEX_MAP4_DE_PREFIX_1 */
+  {
+    { "aesenc256kl",    { XM, M }, 0 },
+  },
+  /* MOD_EVEX_MAP4_DF_PREFIX_1 */
+  {
+    { "aesdec256kl",    { XM, M }, 0 },
+  },
+  /* MOD_EVEX_MAP4_F8_PREFIX_1 */
+  {
+    { "enqcmds",	{ Gva, M },  0 },
+  },
+  /* MOD_EVEX_MAP4_F8_PREFIX_2 */
+  {
+    { "movdir64b",	{ Gva, M }, 0 },
+  },
+  /* MOD_EVEX_MAP4_F8_PREFIX_3 */
+  {
+    { "enqcmd",		{ Gva, M }, 0 },
+  },
+  /* MOD_EVEX_MAP4_F9 */
+  {
+    { "movdiri",	{ Edq, Gdq }, 0 },
+  },
diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h
index 28da54922c7..f6f02de6c47 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -338,6 +338,89 @@
     { "vcmpp%XH", { MaskG, Vex, EXxh, EXxEVexS, CMP }, 0 },
     { "vcmps%XH", { MaskG, VexScalar, EXw, EXxEVexS, CMP }, 0 },
   },
+  /* PREFIX_EVEX_MAP4_60 */
+  {
+    { "movbeS",	{ Gv, Ev }, 0 },
+    { Bad_Opcode },
+    { "movbeS",	{ Gv, Ev }, 0 },
+  },
+  /* PREFIX_EVEX_MAP4_61 */
+  {
+    { "movbeS",	{ Ev, Gv }, 0 },
+    { Bad_Opcode },
+    { "movbeS",	{ Ev, Gv }, 0 },
+  },
+  /* PREFIX_EVEX_MAP4_66 */
+  {
+    { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
+    { "adoxS",	{ Gdq, Edq }, 0 },
+    { "adcxS",	{ Gdq, Edq }, 0 },
+  },
+  /* PREFIX_EVEX_MAP4_D8 */
+  {
+    { "sha1nexte", { XM, EXxmm }, 0 },
+    { REG_TABLE (REG_EVEX_MAP4_D8_PREFIX_1) },
+  },
+  /* PREFIX_EVEX_MAP4_DA */
+  {
+    { "sha1msg2", { XM, EXxmm }, 0 },
+    { MOD_TABLE (MOD_EVEX_MAP4_DA_PREFIX_1) },
+  },
+  /* PREFIX_EVEX_MAP4_DB */
+  {
+    { "sha256rnds2", { XM, EXxmm, XMM0 }, 0 },
+    { MOD_TABLE (MOD_EVEX_MAP4_DB_PREFIX_1) },
+  },
+  /* PREFIX_EVEX_MAP4_DC */
+  {
+    { "sha256msg1", { XM, EXxmm }, 0 },
+    { MOD_TABLE (MOD_EVEX_MAP4_DC_PREFIX_1) },
+  },
+  /* PREFIX_EVEX_MAP4_DD */
+  {
+    { "sha256msg2", { XM, EXxmm }, 0 },
+    { MOD_TABLE (MOD_EVEX_MAP4_DD_PREFIX_1) },
+  },
+  /* PREFIX_EVEX_MAP4_DE */
+  {
+    { Bad_Opcode },
+    { MOD_TABLE (MOD_EVEX_MAP4_DE_PREFIX_1) },
+  },
+  /* PREFIX_EVEX_MAP4_DF */
+  {
+    { Bad_Opcode },
+    { MOD_TABLE (MOD_EVEX_MAP4_DF_PREFIX_1) },
+  },
+  /* PREFIX_EVEX_MAP4_F0 */
+  {
+    { "crc32A",	{ Gdq, Eb }, 0 },
+    { "invept",	{ Gm, Mo }, 0 },
+  },
+  /* PREFIX_EVEX_MAP4_F1 */
+  {
+    { "crc32Q",	{ Gdq, Ev }, 0 },
+    { "invvpid", { Gm, Mo }, 0 },
+    { "crc32Q",	{ Gdq, Ev }, 0 },
+  },
+  /* PREFIX_EVEX_MAP4_F2 */
+  {
+    { Bad_Opcode },
+    { "invpcid", { Gm, M }, 0 },
+  },
+  /* PREFIX_EVEX_MAP4_F8 */
+  {
+    { Bad_Opcode },
+    { MOD_TABLE (MOD_EVEX_MAP4_F8_PREFIX_1) },
+    { MOD_TABLE (MOD_EVEX_MAP4_F8_PREFIX_2) },
+    { MOD_TABLE (MOD_EVEX_MAP4_F8_PREFIX_3) },
+  },
+  /* PREFIX_EVEX_MAP4_FC */
+  {
+    { "aadd",	{ Mdq, Gdq }, 0 },
+    { "axor",	{ Mdq, Gdq }, 0 },
+    { "aand",	{ Mdq, Gdq }, 0 },
+    { "aor",	{ Mdq, Gdq }, 0 },
+  },
   /* PREFIX_EVEX_MAP5_10 */
   {
     { Bad_Opcode },
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index 2885063628b..c3b4f083346 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -49,3 +49,17 @@
     { "vscatterpf0qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
     { "vscatterpf1qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
   },
+  /* REG_EVEX_0F38F3_L_0 */
+  {
+    { Bad_Opcode },
+    { "blsrS",		{ VexGdq, Edq }, 0 },
+    { "blsmskS",	{ VexGdq, Edq }, 0 },
+    { "blsiS",		{ VexGdq, Edq }, 0 },
+  },
+  /* REG_EVEX_MAP4_D8_PREFIX_1 */
+  {
+    { "aesencwide128kl",	{ M }, 0 },
+    { "aesdecwide128kl",	{ M }, 0 },
+    { "aesencwide256kl",	{ M }, 0 },
+    { "aesdecwide256kl",	{ M }, 0 },
+  },
diff --git a/opcodes/i386-dis-evex-x86.h b/opcodes/i386-dis-evex-x86.h
new file mode 100644
index 00000000000..1121223d877
--- /dev/null
+++ b/opcodes/i386-dis-evex-x86.h
@@ -0,0 +1,140 @@
+  /* X86_64_EVEX_0F90 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F90) },
+  },
+  /* X86_64_EVEX_0F91 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F91) },
+  },
+  /* X86_64_EVEX_0F92 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F92) },
+  },
+  /* X86_64_EVEX_0F93 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F93) },
+  },
+  /* X86_64_EVEX_0F3849 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F3849_X86_64) },
+  },
+  /* X86_64_EVEX_0F384B */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F384B_X86_64) },
+  },
+  /* X86_64_EVEX_0F38E0 */
+  {
+    { Bad_Opcode },
+    { "cmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E1 */
+  {
+    { Bad_Opcode },
+    { "cmpnoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E2 */
+  {
+    { Bad_Opcode },
+    { "cmpbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E3 */
+  {
+    { Bad_Opcode },
+    { "cmpnbxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E4 */
+  {
+    { Bad_Opcode },
+    { "cmpzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E5 */
+  {
+    { Bad_Opcode },
+    { "cmpnzxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E6 */
+  {
+    { Bad_Opcode },
+    { "cmpbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E7 */
+  {
+    { Bad_Opcode },
+    { "cmpnbexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E8 */
+  {
+    { Bad_Opcode },
+    { "cmpsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38E9 */
+  {
+    { Bad_Opcode },
+    { "cmpnsxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38EA */
+  {
+    { Bad_Opcode },
+    { "cmppxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38EB */
+  {
+    { Bad_Opcode },
+    { "cmpnpxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38EC */
+  {
+    { Bad_Opcode },
+    { "cmplxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38ED */
+  {
+    { Bad_Opcode },
+    { "cmpnlxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38EE */
+  {
+    { Bad_Opcode },
+    { "cmplexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38EF */
+  {
+    { Bad_Opcode },
+    { "cmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
+  },
+  /* X86_64_EVEX_0F38F2 */
+  {
+    { Bad_Opcode },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F38F2) },
+  },
+  /* X86_64_EVEX_0F38F3 */
+  {
+    { Bad_Opcode },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F38F3) },
+  },
+  /* X86_64_EVEX_0F38F5 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F38F5) },
+  },
+  /* X86_64_EVEX_0F38F6 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F38F6) },
+  },
+  /* X86_64_EVEX_0F38F7 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F38F7) },
+  },
+  /* X86_64_EVEX_0F3AF0 */
+  {
+    { Bad_Opcode },
+    { VEX_LEN_TABLE (VEX_LEN_0F3AF0) },
+  },
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index e6295119d2b..2a8c80c5200 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -164,10 +164,10 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 90 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F90) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F91) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F92) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F93) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -375,9 +375,9 @@ static const struct dis386 evex_table[][256] = {
     { "vpsllv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     /* 48 */
     { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F3849) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F384B) },
     { "vrcp14p%XW",	{ XM, EXx }, PREFIX_DATA },
     { "vrcp14s%XW",	{ XMScalar, VexScalar, EXdq }, PREFIX_DATA },
     { "vrsqrt14p%XW",	{ XM, EXx }, 0 },
@@ -545,32 +545,32 @@ static const struct dis386 evex_table[][256] = {
     { "%XEvaesdecY",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "%XEvaesdeclastY", { XM, Vex, EXx }, PREFIX_DATA },
     /* E0 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E0) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E1) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E2) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E3) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E4) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E5) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E6) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E7) },
     /* E8 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E8) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E9) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EA) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EB) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EC) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38ED) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EE) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EF) },
     /* F0 */
     { Bad_Opcode },
     { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F2) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F3) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F5) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F6) },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F7) },
     /* F8 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -854,7 +854,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* F0 */
-    { Bad_Opcode },
+    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F3AF0) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -872,7 +872,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
   },
-  /* EVEX_MAP5_ */
+  /* EVEX_MAP4_ */
   {
     /* 00 */
     { Bad_Opcode },
@@ -893,8 +893,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 10 */
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
+    { Bad_Opcode },
+    { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -907,7 +907,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
+    { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 20 */
@@ -922,12 +922,12 @@ static const struct dis386 evex_table[][256] = {
     /* 28 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2A) },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2C) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2D) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2E) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2F) },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
     /* 30 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -966,7 +966,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     /* 50 */
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_51) },
+    { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -974,15 +974,6 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 58 */
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_58) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_59) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5A) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5B) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5C) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5D) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5E) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5F) },
-    /* 60 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -991,6 +982,15 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
+    /* 60 */
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_60) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_61) },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { MOD_TABLE (MOD_EVEX_MAP4_65) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_66) },
+    { Bad_Opcode },
     /* 68 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -998,7 +998,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vmovwY", { XMScalar, Edw }, PREFIX_DATA },
+    { Bad_Opcode },
     { Bad_Opcode },
     /* 70 */
     { Bad_Opcode },
@@ -1010,13 +1010,13 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 78 */
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_78) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_79) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7A) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7B) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7C) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7D) },
-    { "vmovw",	  { Edw, XMScalar }, PREFIX_DATA },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
     { Bad_Opcode },
     /* 80 */
     { Bad_Opcode },
@@ -1113,19 +1113,19 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { "sha1rnds4", { XM, EXxmm, Ib }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* D8 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_D8) },
+    { "sha1msg1", { XM, EXxmm }, 0 },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DA) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DB) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DC) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DD) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DE) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_DF) },
     /* E0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1145,25 +1145,25 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* F0 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_F0) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_F1) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_F2) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* F8 */
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_F8) },
+    { MOD_TABLE (MOD_EVEX_MAP4_F9) },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_FC) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
   },
-  /* EVEX_MAP6_ */
+  /* EVEX_MAP5_ */
   {
     /* 00 */
     { Bad_Opcode },
@@ -1184,11 +1184,11 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 10 */
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP6_13) },
-    { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1198,7 +1198,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 20 */
@@ -1213,12 +1213,12 @@ static const struct dis386 evex_table[][256] = {
     /* 28 */
     { Bad_Opcode },
     { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2A) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { "vscalefp%XH",      { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vscalefs%XH",      { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2C) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2D) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2E) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_2F) },
     /* 30 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1240,39 +1240,39 @@ static const struct dis386 evex_table[][256] = {
     /* 40 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vgetexpp%XH",      { XM, EXxh, EXxEVexS }, PREFIX_DATA },
-    { "vgetexps%XH",      { XMScalar, VexScalar, EXw, EXxEVexS }, PREFIX_DATA },
-    { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    /* 48 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
+    /* 48 */
     { Bad_Opcode },
-    { "vrcpp%XH",	  { XM, EXxh }, PREFIX_DATA },
-    { "vrcps%XH",	  { XMScalar, VexScalar, EXw }, PREFIX_DATA },
-    { "vrsqrtp%XH",       { XM, EXxh }, PREFIX_DATA },
-    { "vrsqrts%XH",       { XMScalar, VexScalar, EXw }, PREFIX_DATA },
-    /* 50 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP6_56) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP6_57) },
-    /* 58 */
     { Bad_Opcode },
+    /* 50 */
     { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_51) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
+    /* 58 */
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_58) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_59) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5A) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5B) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5C) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5D) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5E) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_5F) },
     /* 60 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1289,7 +1289,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { "vmovwY", { XMScalar, Edw }, PREFIX_DATA },
     { Bad_Opcode },
     /* 70 */
     { Bad_Opcode },
@@ -1301,7 +1301,15 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 78 */
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_78) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_79) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7A) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7B) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7C) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP5_7D) },
+    { "vmovw",	  { Edw, XMScalar }, PREFIX_DATA },
     { Bad_Opcode },
+    /* 80 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1309,8 +1317,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    /* 80 */
     { Bad_Opcode },
+    /* 88 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1318,8 +1326,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    /* 88 */
     { Bad_Opcode },
+    /* 90 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1327,24 +1335,16 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    /* 90 */
+    { Bad_Opcode },
+    /* 98 */
+    { Bad_Opcode },
+    { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmaddsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmsubadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    /* 98 */
-    { "vfmadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmadd132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfmsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmsub132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfnmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfnmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
     /* A0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1352,17 +1352,17 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmaddsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmsubadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { Bad_Opcode },
+    { Bad_Opcode },
     /* A8 */
-    { "vfmadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmadd213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfmsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmsub213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfnmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfnmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
     /* B0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1370,17 +1370,17 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmaddsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmsubadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { Bad_Opcode },
+    { Bad_Opcode },
     /* B8 */
-    { "vfmadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmadd231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfmsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfmsub231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfnmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
-    { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
-    { "vfnmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
     /* C0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1406,8 +1406,590 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP6_D6) },
-    { PREFIX_TABLE (PREFIX_EVEX_MAP6_D7) },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* D8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* E0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* E8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* F0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* F8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+  },
+  /* EVEX_MAP6_ */
+  {
+    /* 00 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 08 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 10 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP6_13) },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 18 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 20 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 28 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vscalefp%XH",      { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vscalefs%XH",      { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 30 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 38 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 40 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vgetexpp%XH",      { XM, EXxh, EXxEVexS }, PREFIX_DATA },
+    { "vgetexps%XH",      { XMScalar, VexScalar, EXw, EXxEVexS }, PREFIX_DATA },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 48 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vrcpp%XH",	  { XM, EXxh }, PREFIX_DATA },
+    { "vrcps%XH",	  { XMScalar, VexScalar, EXw }, PREFIX_DATA },
+    { "vrsqrtp%XH",       { XM, EXxh }, PREFIX_DATA },
+    { "vrsqrts%XH",       { XMScalar, VexScalar, EXw }, PREFIX_DATA },
+    /* 50 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP6_56) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP6_57) },
+    /* 58 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 60 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 68 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 70 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 78 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 80 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 88 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 90 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vfmaddsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmsubadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    /* 98 */
+    { "vfmadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmadd132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfmsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmsub132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfnmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfnmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    /* A0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vfmaddsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmsubadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    /* A8 */
+    { "vfmadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmadd213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfmsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmsub213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfnmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfnmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    /* B0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vfmaddsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmsubadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    /* B8 */
+    { "vfmadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmadd231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfmsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfmsub231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfnmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
+    { "vfnmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
+    /* C0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* C8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* D0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP6_D6) },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP6_D7) },
+    /* D8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* E0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* E8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* F0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* F8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+  },
+  /* EVEX_MAP7_ */
+  {
+    /* 00 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 08 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 10 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 18 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 20 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 28 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 30 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 38 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 40 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 48 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 50 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 58 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 60 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 68 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 70 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 78 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 80 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 88 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 90 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* 98 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* A0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* A8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* B0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* B8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* C0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* C8 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    /* D0 */
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
     /* D8 */
     { Bad_Opcode },
     { Bad_Opcode },
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 65bdd6f65db..c8f3cfb8149 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -132,6 +132,13 @@ enum x86_64_isa
   intel64
 };
 
+enum evex_type
+{
+  evex_default = 0,
+  evex_from_legacy,
+  evex_from_vex,
+};
+
 struct instr_info
 {
   enum address_mode address_mode;
@@ -212,7 +219,6 @@ struct instr_info
     int ll;
     bool w;
     bool evex;
-    bool r;
     bool v;
     bool zeroing;
     bool b;
@@ -220,6 +226,8 @@ struct instr_info
   }
   vex;
 
+  enum evex_type evex_type;
+
   /* Remember if the current op is a jump instruction.  */
   bool op_is_jump;
 
@@ -793,6 +801,7 @@ enum
   USE_RM_TABLE,
   USE_PREFIX_TABLE,
   USE_X86_64_TABLE,
+  USE_X86_64_EVEX_FROM_VEX_TABLE,
   USE_3BYTE_TABLE,
   USE_XOP_8F_TABLE,
   USE_VEX_C4_TABLE,
@@ -811,6 +820,8 @@ enum
 #define RM_TABLE(I)		DIS386 (USE_RM_TABLE, (I))
 #define PREFIX_TABLE(I)		DIS386 (USE_PREFIX_TABLE, (I))
 #define X86_64_TABLE(I)		DIS386 (USE_X86_64_TABLE, (I))
+#define X86_64_EVEX_FROM_VEX_TABLE(I) \
+  DIS386 (USE_X86_64_EVEX_FROM_VEX_TABLE, (I))
 #define THREE_BYTE_TABLE(I)	DIS386 (USE_3BYTE_TABLE, (I))
 #define XOP_8F_TABLE()		DIS386 (USE_XOP_8F_TABLE, 0)
 #define VEX_C4_TABLE()		DIS386 (USE_VEX_C4_TABLE, 0)
@@ -870,7 +881,9 @@ enum
   REG_EVEX_0F72,
   REG_EVEX_0F73,
   REG_EVEX_0F38C6_L_2,
-  REG_EVEX_0F38C7_L_2
+  REG_EVEX_0F38C7_L_2,
+  REG_EVEX_0F38F3_L_0,
+  REG_EVEX_MAP4_D8_PREFIX_1
 };
 
 enum
@@ -910,6 +923,19 @@ enum
   MOD_0F38DC_PREFIX_1,
 
   MOD_VEX_0F3849_X86_64_L_0_W_0,
+
+  MOD_EVEX_MAP4_65,
+  MOD_EVEX_MAP4_66_PREFIX_0,
+  MOD_EVEX_MAP4_DA_PREFIX_1,
+  MOD_EVEX_MAP4_DB_PREFIX_1,
+  MOD_EVEX_MAP4_DC_PREFIX_1,
+  MOD_EVEX_MAP4_DD_PREFIX_1,
+  MOD_EVEX_MAP4_DE_PREFIX_1,
+  MOD_EVEX_MAP4_DF_PREFIX_1,
+  MOD_EVEX_MAP4_F8_PREFIX_1,
+  MOD_EVEX_MAP4_F8_PREFIX_2,
+  MOD_EVEX_MAP4_F8_PREFIX_3,
+  MOD_EVEX_MAP4_F9,
 };
 
 enum
@@ -1145,6 +1171,22 @@ enum
   PREFIX_EVEX_0F3A67,
   PREFIX_EVEX_0F3AC2,
 
+  PREFIX_EVEX_MAP4_60,
+  PREFIX_EVEX_MAP4_61,
+  PREFIX_EVEX_MAP4_66,
+  PREFIX_EVEX_MAP4_D8,
+  PREFIX_EVEX_MAP4_DA,
+  PREFIX_EVEX_MAP4_DB,
+  PREFIX_EVEX_MAP4_DC,
+  PREFIX_EVEX_MAP4_DD,
+  PREFIX_EVEX_MAP4_DE,
+  PREFIX_EVEX_MAP4_DF,
+  PREFIX_EVEX_MAP4_F0,
+  PREFIX_EVEX_MAP4_F1,
+  PREFIX_EVEX_MAP4_F2,
+  PREFIX_EVEX_MAP4_F8,
+  PREFIX_EVEX_MAP4_FC,
+
   PREFIX_EVEX_MAP5_10,
   PREFIX_EVEX_MAP5_11,
   PREFIX_EVEX_MAP5_1D,
@@ -1255,6 +1297,35 @@ enum
   X86_64_VEX_0F38ED,
   X86_64_VEX_0F38EE,
   X86_64_VEX_0F38EF,
+
+  X86_64_EVEX_0F90,
+  X86_64_EVEX_0F91,
+  X86_64_EVEX_0F92,
+  X86_64_EVEX_0F93,
+  X86_64_EVEX_0F3849,
+  X86_64_EVEX_0F384B,
+  X86_64_EVEX_0F38E0,
+  X86_64_EVEX_0F38E1,
+  X86_64_EVEX_0F38E2,
+  X86_64_EVEX_0F38E3,
+  X86_64_EVEX_0F38E4,
+  X86_64_EVEX_0F38E5,
+  X86_64_EVEX_0F38E6,
+  X86_64_EVEX_0F38E7,
+  X86_64_EVEX_0F38E8,
+  X86_64_EVEX_0F38E9,
+  X86_64_EVEX_0F38EA,
+  X86_64_EVEX_0F38EB,
+  X86_64_EVEX_0F38EC,
+  X86_64_EVEX_0F38ED,
+  X86_64_EVEX_0F38EE,
+  X86_64_EVEX_0F38EF,
+  X86_64_EVEX_0F38F2,
+  X86_64_EVEX_0F38F3,
+  X86_64_EVEX_0F38F5,
+  X86_64_EVEX_0F38F6,
+  X86_64_EVEX_0F38F7,
+  X86_64_EVEX_0F3AF0,
 };
 
 enum
@@ -1282,8 +1353,10 @@ enum
   EVEX_0F = 0,
   EVEX_0F38,
   EVEX_0F3A,
+  EVEX_MAP4,
   EVEX_MAP5,
   EVEX_MAP6,
+  EVEX_MAP7,
 };
 
 enum
@@ -1436,6 +1509,8 @@ enum
   EVEX_LEN_0F385B,
   EVEX_LEN_0F38C6,
   EVEX_LEN_0F38C7,
+  EVEX_LEN_0F38F2,
+  EVEX_LEN_0F38F3,
   EVEX_LEN_0F3A00,
   EVEX_LEN_0F3A01,
   EVEX_LEN_0F3A18,
@@ -4476,6 +4551,8 @@ static const struct dis386 x86_64_table[][2] = {
     { Bad_Opcode },
     { "cmpnlexadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
   },
+
+#include "i386-dis-evex-x86.h"
 };
 
 static const struct dis386 three_byte_table[][256] = {
@@ -8665,6 +8742,9 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
       dp = &prefix_table[dp->op[1].bytemode][vindex];
       break;
 
+    case USE_X86_64_EVEX_FROM_VEX_TABLE:
+      ins->evex_type = evex_from_vex;
+      /* Fall through.  */
     case USE_X86_64_TABLE:
       vindex = ins->address_mode == mode_64bit ? 1 : 0;
       dp = &x86_64_table[dp->op[1].bytemode][vindex];
@@ -8910,9 +8990,13 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
       if (!fetch_code (ins->info, ins->codep + 4))
 	return &err_opcode;
       /* The first byte after 0x62.  */
+      if (*ins->codep & 0x8)
+	ins->rex2 |= REX_B;
+      if (!(*ins->codep & 0x10))
+	ins->rex2 |= REX_R;
+
       ins->rex = ~(*ins->codep >> 5) & 0x7;
-      ins->vex.r = *ins->codep & 0x10;
-      switch ((*ins->codep & 0xf))
+      switch ((*ins->codep & 0x7))
 	{
 	default:
 	  return &bad_opcode;
@@ -8925,12 +9009,19 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	case 0x3:
 	  vex_table_index = EVEX_0F3A;
 	  break;
+	case 0x4:
+	  vex_table_index = EVEX_MAP4;
+	  ins->evex_type = evex_from_legacy;
+	  break;
 	case 0x5:
 	  vex_table_index = EVEX_MAP5;
 	  break;
 	case 0x6:
 	  vex_table_index = EVEX_MAP6;
 	  break;
+	case 0x7:
+	  vex_table_index = EVEX_MAP7;
+	  break;
 	}
 
       /* The second byte after 0x62.  */
@@ -8941,9 +9032,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 
       ins->vex.register_specifier = (~(*ins->codep >> 3)) & 0xf;
 
-      /* The U bit.  */
       if (!(*ins->codep & 0x4))
-	return &bad_opcode;
+	ins->rex2 |= REX_X;
 
       switch ((*ins->codep & 0x3))
 	{
@@ -8973,9 +9063,12 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 
       if (ins->address_mode != mode_64bit)
 	{
+	  if (ins->evex_type != evex_default
+	      || (ins->rex2 & (REX_B | REX_X)))
+	    return &bad_opcode;
 	  /* In 16/32-bit mode silently ignore following bits.  */
 	  ins->rex &= ~REX_B;
-	  ins->vex.r = true;
+	  ins->rex2 &= ~REX_R;
 	}
 
       ins->need_vex = 4;
@@ -9391,6 +9484,13 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
       dp = get_valid_dis386 (dp, &ins);
       if (dp == &err_opcode)
 	goto fetch_error_out;
+
+      /* For APX instructions promoted from legacy maps 0/1, prefix
+	 0x66 is interpreted as the operand size override.  */
+      if (ins.evex_type == evex_from_legacy
+	  && ins.vex.prefix == DATA_PREFIX_OPCODE)
+	sizeflag ^= DFLAG;
+
       if (dp != NULL && putop (&ins, dp->name, sizeflag) == 0)
 	{
 	  if (!get_sib (&ins, sizeflag))
@@ -10280,7 +10380,7 @@ 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.r
+		      || (ins->rex2 & REX_R)
 		      || (ins->modrm.mod == 3 && (ins->rex & REX_X))
 		      || !ins->vex.v || ins->vex.mask_register_specifier)
 		    break;
@@ -11174,7 +11274,7 @@ print_register (instr_info *ins, unsigned int reg, unsigned int rexmask,
     case b_swap_mode:
       if (reg & 4)
 	USED_REX (0);
-      if (ins->rex)
+      if (ins->rex || ins->rex2)
 	names = att_names8rex;
       else
 	names = att_names8;
@@ -11390,7 +11490,7 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
   int riprel = 0;
   int shift;
 
-  if (ins->vex.evex)
+  if (ins->vex.evex && ins->evex_type == evex_default)
     {
 
       /* Zeroing-masking is invalid for memory destinations. Set the flag
@@ -11737,7 +11837,7 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
 
 	      if (ins->rex & REX_R)
 	        modrm_reg += 8;
-	      if (!ins->vex.r)
+	      if (ins->rex2 & REX_R)
 	        modrm_reg += 16;
 	      if (vindex == modrm_reg)
 		oappend (ins, "/(bad)");
@@ -11939,10 +12039,7 @@ OP_indirE (instr_info *ins, int bytemode, int sizeflag)
 static bool
 OP_G (instr_info *ins, int bytemode, int sizeflag)
 {
-  if (ins->vex.evex && !ins->vex.r && ins->address_mode == mode_64bit)
-    oappend (ins, "(bad)");
-  else
-    print_register (ins, ins->modrm.reg, REX_R, bytemode, sizeflag);
+  print_register (ins, ins->modrm.reg, REX_R, bytemode, sizeflag);
   return true;
 }
 
@@ -12572,7 +12669,7 @@ OP_XMM (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED)
     reg += 8;
   if (ins->vex.evex)
     {
-      if (!ins->vex.r)
+      if (ins->rex2 & REX_R)
 	reg += 16;
     }
 
@@ -13579,7 +13676,7 @@ DistinctDest_Fixup (instr_info *ins, int bytemode, int sizeflag)
   /* Calc destination register number.  */
   if (ins->rex & REX_R)
     modrm_reg += 8;
-  if (!ins->vex.r)
+  if (ins->rex2 & REX_R)
     modrm_reg += 16;
 
   /* Calc src1 register number.  */
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 6b8eb729797..f43cb1ecf7c 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -1023,6 +1023,7 @@ process_i386_opcode_modifier (FILE *table, char *mod, unsigned int space,
     SPACE(0F),
     SPACE(0F38),
     SPACE(0F3A),
+    SPACE(EVEXMAP4),
     SPACE(EVEXMAP5),
     SPACE(EVEXMAP6),
     SPACE(XOP08),
@@ -1121,6 +1122,15 @@ process_i386_opcode_modifier (FILE *table, char *mod, unsigned int space,
 	fprintf (stderr,
 		 "%s: %d: W modifier without Word/Dword/Qword operand(s)\n",
 		 filename, lineno);
+      if (modifiers[Vex].value
+	  || (space > SPACE_0F
+	      && !(space == SPACE_EVEXMAP4
+		   || modifiers[EVex].value
+		   || modifiers[Disp8MemShift].value
+		   || modifiers[Broadcast].value
+		   || modifiers[Masking].value
+		   || modifiers[SAE].value)))
+	modifiers[No_egpr].value = 1;
     }
 
   if (space >= ARRAY_SIZE (spaces) || !spaces[space])
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index a055db5ce42..9dd5625f54d 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -972,6 +972,7 @@ typedef struct insn_template
      1: 0F opcode prefix / space.
      2: 0F38 opcode prefix / space.
      3: 0F3A opcode prefix / space.
+     4: EVEXMAP4 opcode prefix / space.
      5: EVEXMAP5 opcode prefix / space.
      6: EVEXMAP6 opcode prefix / space.
      8: XOP 08 opcode space.
@@ -982,6 +983,7 @@ typedef struct insn_template
 #define SPACE_0F	1
 #define SPACE_0F38	2
 #define SPACE_0F3A	3
+#define SPACE_EVEXMAP4  4
 #define SPACE_EVEXMAP5	5
 #define SPACE_EVEXMAP6	6
 #define SPACE_XOP08	8
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 80248e5b72c..791a9fe0177 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -109,6 +109,7 @@
 #define SpaceXOP09 OpcodeSpace=SPACE_XOP09
 #define SpaceXOP0A OpcodeSpace=SPACE_XOP0A
 
+#define EVexMap4 OpcodeSpace=SPACE_EVEXMAP4
 #define EVexMap5 OpcodeSpace=SPACE_EVEXMAP5
 #define EVexMap6 OpcodeSpace=SPACE_EVEXMAP6
 
@@ -187,6 +188,7 @@ mov, 0xf24, i386|No64, D|RegMem|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf, { Te
 
 // Move after swapping the bytes
 movbe, 0x0f38f0, Movbe, D|Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+movbe, 0x60, Movbe|APX_F|x64, D|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // Move with sign extend.
 movsb, 0xfbe, i386, Modrm|No_bSuf|No_sSuf, { Reg8|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
@@ -300,6 +302,9 @@ sbb, 0x18, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg
 sbb, 0x83/3, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 sbb, 0x1c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 sbb, 0x80/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sbb, 0x18, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sbb, 0x83/3, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+sbb, 0x80/3, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 cmp, 0x38, 0, D|W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 cmp, 0x83/7, 0, Modrm|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -332,9 +337,14 @@ adc, 0x10, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg
 adc, 0x83/2, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 adc, 0x14, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 adc, 0x80/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+adc, 0x10, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+adc, 0x83/2, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+adc, 0x80/2, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
 not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 aaa, 0x37, No64, NoSuf, {}
 aas, 0x3f, No64, NoSuf, {}
@@ -395,11 +405,19 @@ rcl, 0xd0/2, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|
 rcl, 0xc0/2, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcl, 0xd2/2, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcl, 0xd0/2, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 0xc0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 0xd2/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 rcr, 0xd0/3, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcr, 0xc0/3, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcr, 0xd2/3, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcr, 0xd0/3, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 0xc0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 0xd2/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 sal, 0xd0/4, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sal, 0xc0/4, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -1312,13 +1330,16 @@ getsec, 0xf37, SMX, NoSuf, {}
 
 invept, 0x660f3880, EPT|No64, Modrm|IgnoreSize|NoSuf, { Oword|Unspecified|BaseIndex, Reg32 }
 invept, 0x660f3880, EPT|x64, Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
+invept, 0xf3f0, APX_F|EPT|x64, Modrm|NoSuf|NoRex64|EVex128|EVexMap4, { Oword|Unspecified|BaseIndex, Reg64 }
 invvpid, 0x660f3881, EPT|No64, Modrm|IgnoreSize|NoSuf, { Oword|Unspecified|BaseIndex, Reg32 }
 invvpid, 0x660f3881, EPT|x64, Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
+invvpid, 0xf3f1, APX_F|EPT|x64, Modrm|NoSuf|NoRex64|EVex128|EVexMap4, { Oword|Unspecified|BaseIndex, Reg64 }
 
 // INVPCID instruction
 
 invpcid, 0x660f3882, INVPCID|No64, Modrm|IgnoreSize|NoSuf, { Oword|Unspecified|BaseIndex, Reg32 }
 invpcid, 0x660f3882, INVPCID|x64, Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
+invpcid, 0xf3f2, APX_F|INVPCID|x64, Modrm|NoSuf|NoRex64|EVex128|EVexMap4, { Oword|Unspecified|BaseIndex, Reg64 }
 
 // SSSE3 instructions.
 
@@ -1418,7 +1439,9 @@ pcmpestrm, 0x660f3a60, SSE4_2|x64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { I
 pcmpistri<sse42>, 0x660f3a63, <sse42:cpu>, Modrm|<sse42:attr>|NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
 pcmpistrm<sse42>, 0x660f3a62, <sse42:cpu>, Modrm|<sse42:attr>|NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
 crc32, 0xf20f38f0, SSE4_2, W|Modrm|No_sSuf|No_qSuf, { Reg8|Reg16|Reg32|Unspecified|BaseIndex, Reg32 }
+crc32, 0xf0, APX_F|x64, W|Modrm|No_sSuf|No_qSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Unspecified|BaseIndex, Reg32 }
 crc32, 0xf20f38f0, SSE4_2|x64, W|Modrm|No_wSuf|No_lSuf|No_sSuf, { Reg8|Reg64|Unspecified|BaseIndex, Reg64 }
+crc32, 0xf0, APX_F|x64, W|Modrm|No_wSuf|No_lSuf|No_sSuf|EVex128|EVexMap4, { Reg8|Reg64|Unspecified|BaseIndex, Reg64 }
 
 // xsave/xrstor New Instructions.
 
@@ -1822,13 +1845,21 @@ xtest, 0xf01d6, HLE|RTM, NoSuf, {}
 // BMI2 instructions.
 
 bzhi, 0xf5, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+bzhi, 0xf5, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 mulx, 0xf2f6, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+mulx, 0xf2f6, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 pdep, 0xf2f5, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+pdep, 0xf2f5, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 pext, 0xf3f5, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+pext, 0xf3f5, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 rorx, 0xf2f0, BMI2, Modrm|CheckOperandSize|Vex128|Space0F3A|No_bSuf|No_wSuf|No_sSuf, { Imm8|Imm8S, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+rorx, 0xf2f0, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F3A|No_bSuf|No_wSuf|No_sSuf, { Imm8|Imm8S, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
 sarx, 0xf3f7, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+sarx, 0xf3f7, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 shlx, 0x66f7, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+shlx, 0x66f7, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 shrx, 0xf2f7, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+shrx, 0xf2f7, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 
 // FMA4 instructions
 
@@ -1899,10 +1930,15 @@ lwpins, 0x12/0, LWP, Modrm|SpaceXOP0A|NoSuf|VexVVVV|Vex, { Imm32|Imm32S, Reg32|U
 // BMI instructions
 
 andn, 0xf2, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+andn, 0xf2, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 bextr, 0xf7, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+bextr, 0xf7, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 blsi, 0xf3/3, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+blsi, 0xf3/3, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 blsmsk, 0xf3/2, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+blsmsk, 0xf3/2, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 blsr, 0xf3/1, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+blsr, 0xf3/1, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 tzcnt, 0xf30fbc, BMI, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // TBM instructions
@@ -2007,7 +2043,9 @@ xstore, 0xfa7c0, PadLock, NoSuf|RepPrefixOk, {}
 
 // Multy-precision Add Carry, rdseed instructions.
 adcx, 0x660f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+adcx, 0x6666, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 adox, 0xf30f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+adox, 0xf366, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 rdseed, 0xfc7/7, RdSeed, Modrm|NoSuf, { Reg16|Reg32|Reg64 }
 
 // SMAP instructions.
@@ -2031,13 +2069,20 @@ bndldx, 0x0f1a, MPX, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex, RegBND }
 
 // SHA instructions.
 sha1rnds4, 0xf3acc, SHA, Modrm|NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM }
+sha1rnds4, 0xd4, SHA|APX_F, Modrm|NoSuf|EVex128|EVexMap4, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM }
 sha1nexte, 0xf38c8, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+sha1nexte, 0xd8, SHA|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { RegXMM|Unspecified|BaseIndex, RegXMM }
 sha1msg1, 0xf38c9, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+sha1msg1, 0xd9, SHA|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { RegXMM|Unspecified|BaseIndex, RegXMM }
 sha1msg2, 0xf38ca, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+sha1msg2, 0xda, SHA|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { RegXMM|Unspecified|BaseIndex, RegXMM }
 sha256rnds2, 0xf38cb, SHA, Modrm|NoSuf, { Acc|Xmmword, RegXMM|Unspecified|BaseIndex, RegXMM }
 sha256rnds2, 0xf38cb, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+sha256rnds2, 0xdb, SHA|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { RegXMM|Unspecified|BaseIndex, RegXMM }
 sha256msg1, 0xf38cc, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+sha256msg1, 0xdc, SHA|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { RegXMM|Unspecified|BaseIndex, RegXMM }
 sha256msg2, 0xf38cd, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+sha256msg2, 0xdd, SHA|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { RegXMM|Unspecified|BaseIndex, RegXMM }
 
 // SHA512 instructions.
 
@@ -2104,8 +2149,11 @@ kxnor<bw>, 0x<bw:kpfx>46, <bw:kcpu>, Modrm|Vex256|Space0F|VexVVVV|VexW0|NoSuf, {
 kxor<bw>, 0x<bw:kpfx>47, <bw:kcpu>, Modrm|Vex256|Space0F|VexVVVV|VexW0|NoSuf, { RegMask, RegMask, RegMask }
 
 kmov<bw>, 0x<bw:kpfx>90, <bw:kcpu>, Modrm|Vex128|Space0F|VexW0|NoSuf, { RegMask|<bw:elem>|Unspecified|BaseIndex, RegMask }
+kmov<bw>, 0x<bw:kpfx>90, <bw:kcpu>|APX_F, Modrm|EVex128|Space0F|VexW0|NoSuf, { RegMask|<bw:elem>|Unspecified|BaseIndex, RegMask }
 kmov<bw>, 0x<bw:kpfx>91, <bw:kcpu>, Modrm|Vex128|Space0F|VexW0|NoSuf, { RegMask, <bw:elem>|Unspecified|BaseIndex }
+kmov<bw>, 0x<bw:kpfx>91, <bw:kcpu>|APX_F, Modrm|EVex128|Space0F|VexW0|NoSuf, { RegMask, <bw:elem>|Unspecified|BaseIndex }
 kmov<bw>, 0x<bw:kpfx>92, <bw:kcpu>, D|Modrm|Vex128|Space0F|VexW0|NoSuf, { Reg32, RegMask }
+kmov<bw>, 0x<bw:kpfx>92, <bw:kcpu>|APX_F, D|Modrm|EVex128|Space0F|VexW0|NoSuf, { Reg32, RegMask }
 
 knot<bw>, 0x<bw:kpfx>44, <bw:kcpu>, Modrm|Vex128|Space0F|VexW0|NoSuf, { RegMask, RegMask }
 kortest<bw>, 0x<bw:kpfx>98, <bw:kcpu>, Modrm|Vex128|Space0F|VexW0|NoSuf, { RegMask, RegMask }
@@ -2626,8 +2674,11 @@ kadd<dq>, 0x<dq:kpfx>4a, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|<dq:kvsz>|
 kand<dq>, 0x<dq:kpfx>41, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|<dq:kvsz>|NoSuf, { RegMask, RegMask, RegMask }
 kandn<dq>, 0x<dq:kpfx>42, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|<dq:kvsz>|NoSuf|Optimize, { RegMask, RegMask, RegMask }
 kmov<dq>, 0x<dq:kpfx>90, AVX512BW, Modrm|Vex128|Space0F|VexW1|<dq:kvsz>|NoSuf, { RegMask|<dq:elem>|Unspecified|BaseIndex, RegMask }
+kmov<dq>, 0x<dq:kpfx>90, AVX512BW|APX_F, Modrm|EVex128|Space0F|VexW1|<dq:kvsz>|NoSuf, { RegMask|<dq:elem>|Unspecified|BaseIndex, RegMask }
 kmov<dq>, 0x<dq:kpfx>91, AVX512BW, Modrm|Vex128|Space0F|VexW1|<dq:kvsz>|NoSuf, { RegMask, <dq:elem>|Unspecified|BaseIndex }
+kmov<dq>, 0x<dq:kpfx>91, AVX512BW|APX_F, Modrm|EVex128|Space0F|VexW1|<dq:kvsz>|NoSuf, { RegMask, <dq:elem>|Unspecified|BaseIndex }
 kmov<dq>, 0xf292, AVX512BW, D|Modrm|Vex128|Space0F|<dq:vexw64>|<dq:kvsz>|NoSuf, { <dq:gpr>, RegMask }
+kmov<dq>, 0xf292, AVX512BW|APX_F, D|Modrm|EVex128|Space0F|<dq:vexw64>|<dq:kvsz>|NoSuf, { <dq:gpr>, RegMask }
 knot<dq>, 0x<dq:kpfx>44, AVX512BW, Modrm|Vex128|Space0F|VexW1|<dq:kvsz>|NoSuf, { RegMask, RegMask }
 kor<dq>, 0x<dq:kpfx>45, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|<dq:kvsz>|NoSuf, { RegMask, RegMask, RegMask }
 kortest<dq>, 0x<dq:kpfx>98, AVX512BW, Modrm|Vex128|Space0F|VexW1|<dq:kvsz>|NoSuf, { RegMask, RegMask }
@@ -3046,9 +3097,13 @@ rdsspq, 0xf30f1e/1, SHSTK|x64, Modrm|NoSuf, { Reg64 }
 saveprevssp, 0xf30f01ea, SHSTK, NoSuf, {}
 rstorssp, 0xf30f01/5, SHSTK, Modrm|NoSuf, { Qword|Unspecified|BaseIndex }
 wrssd, 0x0f38f6, SHSTK, Modrm|IgnoreSize|NoSuf, { Reg32, Dword|Unspecified|BaseIndex }
+wrssd, 0x66, SHSTK|APX_F|x64, Modrm|IgnoreSize|NoSuf|EVex128|EVexMap4, { Reg32, Dword|Unspecified|BaseIndex }
 wrssq, 0x0f38f6, SHSTK|x64, Modrm|NoSuf|Size64, { Reg64, Qword|Unspecified|BaseIndex }
+wrssq, 0x66, APX_F|SHSTK|x64, Modrm|NoSuf|Size64|EVex128|EVexMap4, { Reg64, Qword|Unspecified|BaseIndex }
 wrussd, 0x660f38f5, SHSTK, Modrm|IgnoreSize|NoSuf, { Reg32, Dword|Unspecified|BaseIndex }
+wrussd, 0x6665, SHSTK|APX_F|x64, Modrm|IgnoreSize|NoSuf|EVex128|EVexMap4, { Reg32, Dword|Unspecified|BaseIndex }
 wrussq, 0x660f38f5, SHSTK|x64, Modrm|NoSuf, { Reg64, Qword|Unspecified|BaseIndex }
+wrussq, 0x6665, SHSTK|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Reg64, Qword|Unspecified|BaseIndex }
 setssbsy, 0xf30f01e8, SHSTK, NoSuf, {}
 clrssbsy, 0xf30fae/6, SHSTK, Modrm|NoSuf, { Qword|Unspecified|BaseIndex }
 endbr64, 0xf30f1efa, IBT, NoSuf, {}
@@ -3096,7 +3151,9 @@ cldemote, 0x0f1c/0, CLDEMOTE, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex }
 // MOVDIR[I,64B] instructions.
 
 movdiri, 0xf38f9, MOVDIRI, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
+movdiri, 0xf9, MOVDIRI|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
 movdir64b, 0x660f38f8, MOVDIR64B, Modrm|AddrPrefixOpReg|NoSuf, { Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+movdir64b, 0x66f8, MOVDIR64B|APX_F|x64, Modrm|AddrPrefixOpReg|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex, Reg32|Reg64 }
 
 // MOVEDIR instructions end.
 
@@ -3125,7 +3182,9 @@ vcvtneps2bf16<Vxy>, 0xf372, AVX_NE_CONVERT, Modrm|<Vxy:vex>|Space0F38|VexW0|NoSu
 // ENQCMD instructions.
 
 enqcmd, 0xf20f38f8, ENQCMD, Modrm|AddrPrefixOpReg|NoSuf, { Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+enqcmd, 0xf2f8, ENQCMD|APX_F|x64, Modrm|AddrPrefixOpReg|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex, Reg32|Reg64 }
 enqcmds, 0xf30f38f8, ENQCMD, Modrm|AddrPrefixOpReg|NoSuf, { Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+enqcmds, 0xf3f8, ENQCMD|APX_F|x64, Modrm|AddrPrefixOpReg|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex, Reg32|Reg64 }
 
 // ENQCMD instructions end.
 
@@ -3187,7 +3246,9 @@ xresldtrk, 0xf20f01e9, TSXLDTRK, NoSuf, {}
 // AMX instructions.
 
 ldtilecfg, 0x49/0, AMX_TILE|x64, Modrm|Vex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex }
+ldtilecfg, 0x49/0, AMX_TILE|APX_F|x64, Modrm|EVex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex }
 sttilecfg, 0x6649/0, AMX_TILE|x64, Modrm|Vex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex }
+sttilecfg, 0x6649/0, AMX_TILE|APX_F|x64, Modrm|EVex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex }
 
 tcmmimfp16ps, 0x666c, AMX_COMPLEX|x64, Modrm|Vex128|Space0F38|VexVVVV|VexW0|SwapSources|NoSuf, { RegTMM, RegTMM, RegTMM }
 tcmmrlfp16ps, 0x6c, AMX_COMPLEX|x64, Modrm|Vex128|Space0F38|VexVVVV|VexW0|SwapSources|NoSuf, { RegTMM, RegTMM, RegTMM }
@@ -3200,8 +3261,11 @@ tdpbusd, 0x665e, AMX_INT8|x64, Modrm|Vex128|Space0F38|VexVVVV|VexW0|SwapSources|
 tdpbsud, 0xf35e, AMX_INT8|x64, Modrm|Vex128|Space0F38|VexVVVV|VexW0|SwapSources|NoSuf, { RegTMM, RegTMM, RegTMM }
 
 tileloadd, 0xf24b, AMX_TILE|x64, Sibmem|Vex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex, RegTMM }
+tileloadd, 0xf24b, AMX_TILE|APX_F|x64, Sibmem|EVex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex, RegTMM }
 tileloaddt1, 0x664b, AMX_TILE|x64, Sibmem|Vex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex, RegTMM }
+tileloaddt1, 0x664b, AMX_TILE|APX_F|x64, Sibmem|EVex128|Space0F38|VexW0|NoSuf, { Unspecified|BaseIndex, RegTMM }
 tilestored, 0xf34b, AMX_TILE|x64, Sibmem|Vex128|Space0F38|VexW0|NoSuf, { RegTMM, Unspecified|BaseIndex }
+tilestored, 0xf34b, AMX_TILE|APX_F|x64, Sibmem|EVex128|Space0F38|VexW0|NoSuf, { RegTMM, Unspecified|BaseIndex }
 
 tilerelease, 0x49c0, AMX_TILE|x64, Vex128|Space0F38|VexW0|NoSuf, {}
 
@@ -3213,15 +3277,25 @@ tilezero, 0xf249, AMX_TILE|x64, Modrm|Vex128|Space0F38|VexW0|NoSuf, { RegTMM }
 
 loadiwkey, 0xf30f38dc, KL, Load|Modrm|NoSuf, { RegXMM, RegXMM }
 encodekey128, 0xf30f38fa, KL, Modrm|NoSuf, { Reg32, Reg32 }
+encodekey128, 0xf3da, KL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Reg32, Reg32 }
 encodekey256, 0xf30f38fb, KL, Modrm|NoSuf, { Reg32, Reg32 }
+encodekey256, 0xf3db, KL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Reg32, Reg32 }
 aesenc128kl, 0xf30f38dc, KL, Modrm|NoSuf, { Unspecified|BaseIndex, RegXMM }
+aesenc128kl, 0xf3dc, KL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex, RegXMM }
 aesdec128kl, 0xf30f38dd, KL, Modrm|NoSuf, { Unspecified|BaseIndex, RegXMM }
+aesdec128kl, 0xf3dd, KL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex, RegXMM }
 aesenc256kl, 0xf30f38de, KL, Modrm|NoSuf, { Unspecified|BaseIndex, RegXMM }
+aesenc256kl, 0xf3de, KL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex, RegXMM }
 aesdec256kl, 0xf30f38df, KL, Modrm|NoSuf, { Unspecified|BaseIndex, RegXMM }
+aesdec256kl, 0xf3df, KL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex, RegXMM }
 aesencwide128kl, 0xf30f38d8/0, WideKL, Modrm|NoSuf, { Unspecified|BaseIndex }
+aesencwide128kl, 0xf3d8/0, WideKL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex }
 aesdecwide128kl, 0xf30f38d8/1, WideKL, Modrm|NoSuf, { Unspecified|BaseIndex }
+aesdecwide128kl, 0xf3d8/1, WideKL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex }
 aesencwide256kl, 0xf30f38d8/2, WideKL, Modrm|NoSuf, { Unspecified|BaseIndex }
+aesencwide256kl, 0xf3d8/2, WideKL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex }
 aesdecwide256kl, 0xf30f38d8/3, WideKL, Modrm|NoSuf, { Unspecified|BaseIndex }
+aesdecwide256kl, 0xf3d8/3, WideKL|APX_F|x64, Modrm|NoSuf|EVex128|EVexMap4, { Unspecified|BaseIndex }
 
 // KEYLOCKER instructions end.
 
@@ -3370,6 +3444,7 @@ prefetchit1, 0xf18/6, PREFETCHI|x64, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex
 // CMPCCXADD instructions.
 
 cmp<cc>xadd, 0x66e<cc:opc>, CMPCCXADD|x64, Modrm|Vex|Space0F38|VexVVVV|SwapSources|CheckOperandSize|NoSuf, { Reg32|Reg64, Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
+cmp<cc>xadd, 0x66e<cc:opc>, CMPCCXADD|x64|APX_F, Modrm|EVex128|Space0F38|VexVVVV|SwapSources|CheckOperandSize|NoSuf, { Reg32|Reg64, Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
 
 // CMPCCXADD instructions end.
 
@@ -3389,9 +3464,13 @@ wrmsrlist, 0xf30f01c6, MSRLIST|x64, NoSuf, {}
 // RAO-INT instructions.
 
 aadd, 0xf38fc, RAO_INT, Modrm|IgnoreSize|CheckOperandSize|NoSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
+aadd, 0xfc, RAO_INT|APX_F|x64, Modrm|IgnoreSize|CheckOperandSize|NoSuf|EVex128|EVexMap4, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
 aand, 0x660f38fc, RAO_INT, Modrm|IgnoreSize|CheckOperandSize|NoSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
+aand, 0x66fc, RAO_INT|APX_F|x64, Modrm|IgnoreSize|CheckOperandSize|NoSuf|EVex128|EVexMap4, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
 aor, 0xf20f38fc, RAO_INT, Modrm|IgnoreSize|CheckOperandSize|NoSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
+aor, 0xf2fc, RAO_INT|APX_F|x64, Modrm|IgnoreSize|CheckOperandSize|NoSuf|EVex128|EVexMap4, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
 axor, 0xf30f38fc, RAO_INT, Modrm|IgnoreSize|CheckOperandSize|NoSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
+axor, 0xf3fc, RAO_INT|APX_F|x64, Modrm|IgnoreSize|CheckOperandSize|NoSuf|EVex128|EVexMap4, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
 
 // RAO-INT instructions end.
 
@@ -3408,3 +3487,4 @@ erets, 0xf20f01ca, FRED|x64, NoSuf, {}
 eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
 
 // FRED instructions end.
+
-- 
2.25.1


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

* [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
  2023-09-19 15:25 ` [PATCH 1/8] Support APX GPR32 with rex2 prefix Cui, Lili
  2023-09-19 15:25 ` [PATCH 2/8] Support APX GPR32 with extend evex prefix Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-27 13:11   ` Jan Beulich
  2023-09-27 13:19   ` Jan Beulich
  2023-09-19 15:25 ` [PATCH 4/8] Support APX NDD Cui, Lili
                   ` (4 subsequent siblings)
  7 siblings, 2 replies; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu

gas/ChangeLog:

	* testsuite/gas/i386/x86-64-apx-egpr-inval.l: Add some
	insn don't support gpr32
	* testsuite/gas/i386/x86-64-apx-egpr-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s: Ditto.
	* testsuite/gas/i386/x86-64.exp: Add x86-64-apx-evex-egpr,
	x86-64-apx-evex-legacy and x86-64-apx-evex-vex.
	* testsuite/gas/i386/x86-64-apx-evex-egpr.d: New test.
	* testsuite/gas/i386/x86-64-apx-evex-egpr.s: New test.
	* testsuite/gas/i386/x86-64-apx-evex-promoted-intrel.d: New test.
	* testsuite/gas/i386/x86-64-apx-evex-promoted.d: New test.
	* testsuite/gas/i386/x86-64-apx-evex-promoted.s: New test.
---
 .../gas/i386/x86-64-apx-egpr-inval.l          |  190 ++-
 .../gas/i386/x86-64-apx-egpr-inval.s          |  194 ++-
 .../gas/i386/x86-64-apx-egpr-promote-inval.l  |   17 +
 .../gas/i386/x86-64-apx-egpr-promote-inval.s  |   18 +
 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d |   22 +
 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s |   25 +
 .../gas/i386/x86-64-apx-evex-promoted-intel.d |  740 +++++++++
 .../gas/i386/x86-64-apx-evex-promoted.d       |  740 +++++++++
 .../gas/i386/x86-64-apx-evex-promoted.s       | 1464 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64-evex.d          |    2 +-
 gas/testsuite/gas/i386/x86-64-inval-movbe.l   |   31 +-
 gas/testsuite/gas/i386/x86-64-inval-movbe.s   |    1 +
 gas/testsuite/gas/i386/x86-64.exp             |    4 +
 13 files changed, 3430 insertions(+), 18 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s

diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
index c419f449f27..2fc8a4cc5f0 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
@@ -12,9 +12,197 @@
 .*:16: Error: register type mismatch for `xsaveopt64'
 .*:17: Error: register type mismatch for `xsavec'
 .*:18: Error: register type mismatch for `xsavec64'
+.*:20: Error: register type mismatch for `phaddw'
+.*:21: Error: register type mismatch for `phaddd'
+.*:22: Error: register type mismatch for `phaddsw'
+.*:23: Error: register type mismatch for `phsubw'
+.*:24: Error: register type mismatch for `pmaddubsw'
+.*:25: Error: register type mismatch for `pmulhrsw'
+.*:26: Error: register type mismatch for `pshufb'
+.*:27: Error: register type mismatch for `psignb'
+.*:28: Error: register type mismatch for `psignw'
+.*:29: Error: register type mismatch for `psignd'
+.*:30: Error: register type mismatch for `palignr'
+.*:31: Error: register type mismatch for `pabsb'
+.*:32: Error: register type mismatch for `pabsw'
+.*:33: Error: register type mismatch for `pabsd'
+.*:34: Error: register type mismatch for `blendpd'
+.*:35: Error: register type mismatch for `blendps'
+.*:36: Error: register type mismatch for `blendvpd'
+.*:37: Error: register type mismatch for `blendvps'
+.*:38: Error: register type mismatch for `blendvpd'
+.*:39: Error: register type mismatch for `blendvps'
+.*:40: Error: register type mismatch for `dppd'
+.*:41: Error: register type mismatch for `dpps'
+.*:42: Error: register type mismatch for `extractps'
+.*:43: Error: register type mismatch for `extractps'
+.*:44: Error: register type mismatch for `insertps'
+.*:45: Error: register type mismatch for `movntdqa'
+.*:46: Error: register type mismatch for `mpsadbw'
+.*:47: Error: register type mismatch for `packusdw'
+.*:48: Error: register type mismatch for `pblendvb'
+.*:49: Error: register type mismatch for `pblendvb'
+.*:50: Error: register type mismatch for `pblendw'
+.*:51: Error: register type mismatch for `pcmpeqq'
+.*:52: Error: register type mismatch for `pextrb'
+.*:53: Error: register type mismatch for `pextrw'
+.*:54: Error: register type mismatch for `pextrb'
+.*:55: Error: register type mismatch for `pextrd'
+.*:56: Error: register type mismatch for `pextrd'
+.*:57: Error: register type mismatch for `phminposuw'
+.*:58: Error: register type mismatch for `pinsrb'
+.*:59: Error: register type mismatch for `pinsrb'
+.*:60: Error: register type mismatch for `pinsrd'
+.*:61: Error: register type mismatch for `pinsrd'
+.*:62: Error: register type mismatch for `pinsrq'
+.*:63: Error: register type mismatch for `pinsrq'
+.*:64: Error: register type mismatch for `pmaxsb'
+.*:65: Error: register type mismatch for `pmaxsd'
+.*:66: Error: register type mismatch for `pmaxud'
+.*:67: Error: register type mismatch for `pmaxuw'
+.*:68: Error: register type mismatch for `pminsb'
+.*:69: Error: register type mismatch for `pminsd'
+.*:70: Error: register type mismatch for `pminud'
+.*:71: Error: register type mismatch for `pminuw'
+.*:72: Error: register type mismatch for `pmovsxbw'
+.*:73: Error: register type mismatch for `pmovsxbd'
+.*:74: Error: register type mismatch for `pmovsxbq'
+.*:75: Error: register type mismatch for `pmovsxwd'
+.*:76: Error: register type mismatch for `pmovsxwq'
+.*:77: Error: register type mismatch for `pmovsxdq'
+.*:78: Error: register type mismatch for `pmovsxbw'
+.*:79: Error: register type mismatch for `pmovzxbd'
+.*:80: Error: register type mismatch for `pmovzxbq'
+.*:81: Error: register type mismatch for `pmovzxwd'
+.*:82: Error: register type mismatch for `pmovzxwq'
+.*:83: Error: register type mismatch for `pmovzxdq'
+.*:84: Error: register type mismatch for `pmuldq'
+.*:85: Error: register type mismatch for `pmulld'
+.*:86: Error: register type mismatch for `roundpd'
+.*:87: Error: register type mismatch for `roundps'
+.*:88: Error: register type mismatch for `roundsd'
+.*:89: Error: register type mismatch for `roundss'
+.*:90: Error: register type mismatch for `pcmpgtq'
+.*:91: Error: register type mismatch for `pcmpestri'
+.*:92: Error: register type mismatch for `pcmpestrm'
+.*:93: Error: register type mismatch for `pcmpistri'
+.*:94: Error: register type mismatch for `pcmpistrm'
+.*:96: Error: register type mismatch for `aesdec'
+.*:97: Error: register type mismatch for `aesdeclast'
+.*:98: Error: register type mismatch for `aesenc'
+.*:99: Error: register type mismatch for `aesenclast'
+.*:100: Error: register type mismatch for `aesimc'
+.*:101: Error: register type mismatch for `aeskeygenassist'
+.*:102: Error: register type mismatch for `pclmulqdq'
+.*:103: Error: register type mismatch for `pclmullqlqdq'
+.*:104: Error: register type mismatch for `pclmulhqlqdq'
+.*:105: Error: register type mismatch for `pclmullqhqdq'
+.*:106: Error: register type mismatch for `pclmulhqhqdq'
+.*:108: Error: register type mismatch for `gf2p8affineqb'
+.*:109: Error: register type mismatch for `gf2p8affineinvqb'
+.*:110: Error: register type mismatch for `gf2p8mulb'
+.*:112: Error: register type mismatch for `vblendpd'
+.*:113: Error: register type mismatch for `vblendpd'
+.*:114: Error: register type mismatch for `vblendps'
+.*:115: Error: register type mismatch for `vblendps'
+.*:116: Error: register type mismatch for `vblendvpd'
+.*:117: Error: register type mismatch for `vblendvpd'
+.*:118: Error: register type mismatch for `vblendvps'
+.*:119: Error: register type mismatch for `vblendvps'
+.*:120: Error: register type mismatch for `vdppd'
+.*:121: Error: register type mismatch for `vdpps'
+.*:122: Error: register type mismatch for `vdpps'
+.*:123: Error: register type mismatch for `vhaddpd'
+.*:124: Error: register type mismatch for `vhaddpd'
+.*:125: Error: register type mismatch for `vhsubps'
+.*:126: Error: register type mismatch for `vhsubps'
+.*:127: Error: register type mismatch for `vlddqu'
+.*:128: Error: register type mismatch for `vlddqu'
+.*:129: Error: register type mismatch for `vldmxcsr'
+.*:130: Error: register type mismatch for `vmaskmovpd'
+.*:131: Error: register type mismatch for `vmaskmovpd'
+.*:132: Error: register type mismatch for `vmaskmovps'
+.*:133: Error: register type mismatch for `vmaskmovps'
+.*:134: Error: register type mismatch for `vmaskmovpd'
+.*:135: Error: register type mismatch for `vmaskmovpd'
+.*:136: Error: register type mismatch for `vmaskmovps'
+.*:137: Error: register type mismatch for `vmaskmovps'
+.*:138: Error: register type mismatch for `vmovmskpd'
+.*:139: Error: register type mismatch for `vmovmskpd'
+.*:140: Error: register type mismatch for `vmovmskps'
+.*:141: Error: register type mismatch for `vmovmskps'
+.*:142: Error: register type mismatch for `vpblendvb'
+.*:143: Error: register type mismatch for `vpblendvb'
+.*:144: Error: register type mismatch for `vpblendw'
+.*:145: Error: register type mismatch for `vpblendw'
+.*:146: Error: register type mismatch for `vpcmpestri'
+.*:147: Error: register type mismatch for `vpcmpestrm'
+.*:148: Error: register type mismatch for `vperm2f128'
+.*:149: Error: register type mismatch for `vphaddd'
+.*:150: Error: register type mismatch for `vphaddsw'
+.*:151: Error: register type mismatch for `vphaddw'
+.*:152: Error: register type mismatch for `vphsubd'
+.*:153: Error: register type mismatch for `vphsubsw'
+.*:154: Error: register type mismatch for `vphsubw'
+.*:155: Error: register type mismatch for `vphaddd'
+.*:156: Error: register type mismatch for `vphaddsw'
+.*:157: Error: register type mismatch for `vphaddw'
+.*:158: Error: register type mismatch for `vphsubd'
+.*:159: Error: register type mismatch for `vphsubsw'
+.*:160: Error: register type mismatch for `vphsubw'
+.*:161: Error: register type mismatch for `vphminposuw'
+.*:162: Error: register type mismatch for `vpmovmskb'
+.*:163: Error: register type mismatch for `vpmovmskb'
+.*:164: Error: register type mismatch for `vpsignb'
+.*:165: Error: register type mismatch for `vpsignw'
+.*:166: Error: register type mismatch for `vpsignd'
+.*:167: Error: register type mismatch for `vpsignb'
+.*:168: Error: register type mismatch for `vpsignw'
+.*:169: Error: register type mismatch for `vpsignd'
+.*:170: Error: register type mismatch for `vptest'
+.*:171: Error: register type mismatch for `vptest'
+.*:172: Error: register type mismatch for `vrcpps'
+.*:173: Error: register type mismatch for `vrcpps'
+.*:174: Error: register type mismatch for `vrcpss'
+.*:175: Error: register type mismatch for `vrsqrtps'
+.*:176: Error: register type mismatch for `vrsqrtps'
+.*:177: Error: register type mismatch for `vrsqrtss'
+.*:178: Error: register type mismatch for `vstmxcsr'
+.*:179: Error: register type mismatch for `vtestps'
+.*:180: Error: register type mismatch for `vtestps'
+.*:181: Error: register type mismatch for `vtestpd'
+.*:182: Error: register type mismatch for `vtestps'
+.*:183: Error: register type mismatch for `vtestpd'
+.*:184: Error: register type mismatch for `vpblendd'
+.*:185: Error: register type mismatch for `vpblendd'
+.*:186: Error: register type mismatch for `vperm2i128'
+.*:187: Error: register type mismatch for `vpmaskmovd'
+.*:188: Error: register type mismatch for `vpmaskmovd'
+.*:189: Error: register type mismatch for `vpmaskmovq'
+.*:190: Error: register type mismatch for `vpmaskmovq'
+.*:191: Error: register type mismatch for `vpmaskmovd'
+.*:192: Error: register type mismatch for `vpmaskmovd'
+.*:193: Error: register type mismatch for `vpmaskmovq'
+.*:194: Error: register type mismatch for `vpmaskmovq'
+.*:195: Error: register type mismatch for `vaesimc'
+.*:196: Error: register type mismatch for `vaeskeygenassist'
+.*:197: Error: register type mismatch for `vroundpd'
+.*:198: Error: register type mismatch for `vroundps'
+.*:199: Error: register type mismatch for `vroundsd'
+.*:200: Error: register type mismatch for `vroundss'
+.*:201: Error: register type mismatch for `vpcmpistri'
+.*:202: Error: register type mismatch for `vpcmpistrm'
+.*:203: Error: register type mismatch for `vpcmpeqb'
+.*:204: Error: register type mismatch for `vpcmpeqw'
+.*:205: Error: register type mismatch for `vpcmpeqd'
+.*:206: Error: register type mismatch for `vpcmpeqq'
+.*:207: Error: register type mismatch for `vpcmpgtb'
+.*:208: Error: register type mismatch for `vpcmpgtw'
+.*:209: Error: register type mismatch for `vpcmpgtd'
+.*:210: Error: register type mismatch for `vpcmpgtq'
 GAS LISTING .*
 #...
-[ 	]*1[ 	]+\# Check Illegal 64bit APX instructions
+[ 	]*1[ 	]+\# Check illegal 64bit APX instructions
 [ 	]*2[ 	]+\.text
 [ 	]*3[ 	]+\.arch \.noapx_f
 [ 	]*4[ 	]+test    \$0x7, %r17d
diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
index 5249b888046..cbac896fd28 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
@@ -1,4 +1,4 @@
-# Check Illegal 64bit APX instructions
+# Check illegal 64bit APX instructions
 	.text
 	.arch .noapx_f
 	test    $0x7, %r17d
@@ -16,3 +16,195 @@
 	xsaveopt64 (%r16, %rbx)
 	xsavec (%r16, %rbx)
 	xsavec64 (%r16, %rbx)
+#SSE
+	phaddw          (%r17),%xmm0
+	phaddd          (%r17),%xmm0
+	phaddsw         (%r17),%xmm0
+	phsubw          (%r17),%xmm0
+	pmaddubsw       (%r17),%xmm0
+	pmulhrsw        (%r17),%xmm0
+	pshufb          (%r17),%xmm0
+	psignb          (%r17),%xmm0
+	psignw          (%r17),%xmm0
+	psignd          (%r17),%xmm0
+	palignr $100,(%r17),%xmm6
+	pabsb          (%r17),%xmm0
+	pabsw          (%r17),%xmm0
+	pabsd          (%r17),%xmm0
+	blendpd $100,(%r18),%xmm6
+	blendps $100,(%r18),%xmm6
+	blendvpd %xmm0,(%r19),%xmm6
+	blendvps %xmm0,(%r19),%xmm6
+	blendvpd (%r19),%xmm6
+	blendvps (%r19),%xmm6
+	dppd $100,(%r20),%xmm6
+	dpps $100,(%r20),%xmm6
+	extractps $100,%xmm4,(%r21)
+	extractps $100,%xmm4,%r21
+	insertps $100,(%r21),%xmm6
+	movntdqa (%r21),%xmm4
+	mpsadbw $100,(%r21),%xmm6
+	packusdw (%r21),%xmm6
+	pblendvb %xmm0,(%r22),%xmm6
+	pblendvb (%r22),%xmm6
+	pblendw $100,(%r22),%xmm6
+	pcmpeqq (%r22),%xmm6
+	pextrb $100,%xmm4,(%r22)
+	pextrw $100,%xmm4,(%r22)
+	pextrb $100,%xmm4,%r22
+	pextrd $100,%xmm4,%r22d
+	pextrd $100,%xmm4,(%r22)
+	phminposuw (%r23),%xmm4
+	pinsrb $100,%r23,%xmm4
+	pinsrb $100,(%r23),%xmm4
+	pinsrd $100, %r23d, %xmm4
+	pinsrd $100,(%r23),%xmm4
+	pinsrq $100, %r24, %xmm4
+	pinsrq $100,(%r24),%xmm4
+	pmaxsb (%r24),%xmm6
+	pmaxsd (%r24),%xmm6
+	pmaxud (%r24),%xmm6
+	pmaxuw (%r24),%xmm6
+	pminsb (%r24),%xmm6
+	pminsd (%r24),%xmm6
+	pminud (%r24),%xmm6
+	pminuw (%r24),%xmm6
+	pmovsxbw (%r24),%xmm4
+	pmovsxbd (%r24),%xmm4
+	pmovsxbq (%r24),%xmm4
+	pmovsxwd (%r24),%xmm4
+	pmovsxwq (%r24),%xmm4
+	pmovsxdq (%r24),%xmm4
+	pmovsxbw (%r24),%xmm4
+	pmovzxbd (%r24),%xmm4
+	pmovzxbq (%r24),%xmm4
+	pmovzxwd (%r24),%xmm4
+	pmovzxwq (%r24),%xmm4
+	pmovzxdq (%r24),%xmm4
+	pmuldq (%r24),%xmm4
+	pmulld (%r24),%xmm4
+	roundpd $100,(%r24),%xmm6
+	roundps $100,(%r24),%xmm6
+	roundsd $100,(%r24),%xmm6
+	roundss $100,(%r24),%xmm6
+	pcmpgtq (%r25),%xmm4
+	pcmpestri $100,(%r25),%xmm6
+	pcmpestrm $100,(%r25),%xmm6
+	pcmpistri $100,(%r25),%xmm6
+	pcmpistrm $100,(%r25),%xmm6
+#AES
+	aesdec (%r26),%xmm6
+	aesdeclast (%r26),%xmm6
+	aesenc (%r26),%xmm6
+	aesenclast (%r26),%xmm6
+	aesimc (%r26),%xmm6
+	aeskeygenassist $100,(%r26),%xmm6
+	pclmulqdq $100,(%r26),%xmm6
+	pclmullqlqdq (%r26),%xmm6
+	pclmulhqlqdq (%r26),%xmm6
+	pclmullqhqdq (%r26),%xmm6
+	pclmulhqhqdq (%r26),%xmm6
+#GFNI
+	gf2p8affineqb $100,(%r26),%xmm6
+	gf2p8affineinvqb $100,(%r26),%xmm6
+	gf2p8mulb (%r26),%xmm6
+#VEX without evex
+	vblendpd $7,(%r27),%xmm6,%xmm2
+	vblendpd $7,(%r27),%ymm6,%ymm2
+	vblendps $7,(%r27),%xmm6,%xmm2
+	vblendps $7,(%r27),%ymm6,%ymm2
+	vblendvpd %xmm4,(%r27),%xmm2,%xmm7
+	vblendvpd %ymm4,(%r27),%ymm2,%ymm7
+	vblendvps %xmm4,(%r27),%xmm2,%xmm7
+	vblendvps %ymm4,(%r27),%ymm2,%ymm7
+	vdppd $7,(%r27),%xmm6,%xmm2
+	vdpps $7,(%r27),%xmm6,%xmm2
+	vdpps $7,(%r27),%ymm6,%ymm2
+	vhaddpd (%r27),%xmm6,%xmm5
+	vhaddpd (%r27),%ymm6,%ymm5
+	vhsubps (%r27),%xmm6,%xmm5
+	vhsubps (%r27),%ymm6,%ymm5
+	vlddqu (%r27),%xmm4
+	vlddqu (%r27),%ymm4
+	vldmxcsr (%r27)
+	vmaskmovpd (%r27),%xmm4,%xmm6
+	vmaskmovpd %xmm4,%xmm6,(%r27)
+	vmaskmovps (%r27),%xmm4,%xmm6
+	vmaskmovps %xmm4,%xmm6,(%r27)
+	vmaskmovpd (%r27),%ymm4,%ymm6
+	vmaskmovpd %ymm4,%ymm6,(%r27)
+	vmaskmovps (%r27),%ymm4,%ymm6
+	vmaskmovps %ymm4,%ymm6,(%r27)	
+	vmovmskpd %xmm4,%r27d
+	vmovmskpd %xmm8,%r27d
+	vmovmskps %xmm4,%r27d
+	vmovmskps %ymm8,%r27d
+	vpblendvb %xmm4,(%r27),%xmm2,%xmm7
+	vpblendvb %ymm4,(%r27),%ymm2,%ymm7
+	vpblendw $7,(%r27),%xmm6,%xmm2
+	vpblendw $7,(%r27),%ymm6,%ymm2
+	vpcmpestri $7,(%r27),%xmm6
+	vpcmpestrm $7,(%r27),%xmm6
+	vperm2f128 $7,(%r27),%ymm6,%ymm2
+	vphaddd (%r27),%xmm6,%xmm7
+	vphaddsw (%r27),%xmm6,%xmm7
+	vphaddw (%r27),%xmm6,%xmm7
+	vphsubd (%r27),%xmm6,%xmm7
+	vphsubsw (%r27),%xmm6,%xmm7
+	vphsubw (%r27),%xmm6,%xmm7
+	vphaddd (%r27),%ymm6,%ymm7
+	vphaddsw (%r27),%ymm6,%ymm7
+	vphaddw (%r27),%ymm6,%ymm7
+	vphsubd (%r27),%ymm6,%ymm7
+	vphsubsw (%r27),%ymm6,%ymm7
+	vphsubw (%r27),%ymm6,%ymm7
+	vphminposuw (%r27),%xmm6
+	vpmovmskb %xmm4,%r27
+	vpmovmskb %ymm4,%r27d
+	vpsignb (%r27),%xmm6,%xmm7
+	vpsignw (%r27),%xmm6,%xmm7
+	vpsignd (%r27),%xmm6,%xmm7
+	vpsignb (%r27),%xmm6,%xmm7
+	vpsignw (%r27),%xmm6,%xmm7
+	vpsignd (%r27),%xmm6,%xmm7
+	vptest (%r27),%xmm6
+	vptest (%r27),%ymm6
+	vrcpps (%r27),%xmm6
+	vrcpps (%r27),%ymm6
+	vrcpss (%r27),%xmm6,%xmm6
+	vrsqrtps (%r27),%xmm6
+	vrsqrtps (%r27),%ymm6
+	vrsqrtss (%r27),%xmm6,%xmm6
+	vstmxcsr (%r27)
+	vtestps (%r27),%xmm6
+	vtestps (%r27),%ymm6
+	vtestpd (%r27),%xmm6
+	vtestps (%r27),%ymm6
+	vtestpd (%r27),%ymm6
+	vpblendd $7,(%r27),%xmm6,%xmm2
+	vpblendd $7,(%r27),%ymm6,%ymm2
+	vperm2i128 $7,(%r27),%ymm6,%ymm2
+	vpmaskmovd (%r27),%xmm4,%xmm6
+	vpmaskmovd %xmm4,%xmm6,(%r27)
+	vpmaskmovq (%r27),%xmm4,%xmm6
+	vpmaskmovq %xmm4,%xmm6,(%r27)
+	vpmaskmovd (%r27),%ymm4,%ymm6
+	vpmaskmovd %ymm4,%ymm6,(%r27)
+	vpmaskmovq (%r27),%ymm4,%ymm6
+	vpmaskmovq %ymm4,%ymm6,(%r27)
+	vaesimc (%r27), %xmm3
+	vaeskeygenassist $7,(%r27),%xmm3
+	vroundpd $100,(%r24),%xmm6
+	vroundps $100,(%r24),%xmm6
+	vroundsd $100,(%r24),%xmm6,%xmm3
+	vroundss $100,(%r24),%xmm6,%xmm3
+	vpcmpistri $100,(%r25),%xmm6
+	vpcmpistrm $100,(%r25),%xmm6
+	vpcmpeqb (%r26),%ymm6,%ymm2
+	vpcmpeqw (%r16),%ymm6,%ymm2
+	vpcmpeqd (%r26),%ymm6,%ymm2
+	vpcmpeqq (%r16),%ymm6,%ymm2
+	vpcmpgtb (%r26),%ymm6,%ymm2
+	vpcmpgtw (%r16),%ymm6,%ymm2
+	vpcmpgtd (%r26),%ymm6,%ymm2
+	vpcmpgtq (%r16),%ymm6,%ymm2
diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l
new file mode 100644
index 00000000000..07f18c8ba33
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l
@@ -0,0 +1,17 @@
+.*: Assembler messages:
+.*:5: Error: `movbe' is not supported on `x86_64.nomovbe'
+.*:6: Error: `movbe' is not supported on `x86_64.nomovbe'
+.*:8: Error: `invept' is not supported on `x86_64.nomovbe.noept'
+.*:9: Error: `invept' is not supported on `x86_64.nomovbe.noept'
+.*:11: Error: `kmovq' is not supported on `x86_64.nomovbe.noept.noavx512bw'
+.*:12: Error: `kmovq' is not supported on `x86_64.nomovbe.noept.noavx512bw'
+.*:14: Error: `kmovb' is not supported on `x86_64.nomovbe.noept.noavx512bw.noavx512dq'
+.*:15: Error: `kmovb' is not supported on `x86_64.nomovbe.noept.noavx512bw.noavx512dq'
+.*:17: Error: `kmovw' is not supported on `x86_64.nomovbe.noept.noavx512bw.noavx512dq.noavx512f'
+.*:18: Error: `kmovw' is not supported on `x86_64.nomovbe.noept.noavx512bw.noavx512dq.noavx512f'
+GAS LISTING .*
+#...
+[ 	]*1[ 	]+\# Check illegal 64bit APX EVEX promoted instructions
+[ 	]*2[ 	]+\.text
+[ 	]*3[ 	]+\.arch \.apx_f
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
new file mode 100644
index 00000000000..23d6fd13475
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
@@ -0,0 +1,18 @@
+# Check illegal 64bit APX EVEX promoted instructions
+	.text
+	.arch .apx_f
+	.arch .nomovbe
+	movbe (%r16), %r17
+	movbe (%rax), %rcx
+	.arch .noept
+	invept (%r16), %r17
+	invept (%rax), %rcx
+	.arch .noavx512bw
+	kmovq %k1, (%r16)
+	kmovq %k1, (%r8)
+	.arch .noavx512dq
+	kmovb %k1, %r16d
+	kmovb %k1, %r8d
+	.arch .noavx512f
+	kmovw %k1, %r16d
+	kmovw %k1, %r8d
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d b/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d
new file mode 100644
index 00000000000..29b685f7bef
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d
@@ -0,0 +1,22 @@
+#as:
+#objdump: -dw
+#name: x86-64 APX old evex insn use gpr32 with extend-evex prefix
+#source: x86-64-apx-evex-egpr.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 fb 79 48 19 04 08 01 	vextractf32x4 \$0x1,%zmm0,\(%r16,%r17,1\)
+\s*[a-f0-9]+:\s*62 fa 79 48 5a 04 08 	vbroadcasti32x4 \(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 f9 f9 48 72 04 08 00 	vprorq \$0x0,\(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 f9 f9 48 72 0c 08 00 	vprolq \$0x0,\(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 f9 f9 48 73 14 08 00 	vpsrlq \$0x0,\(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 f9 79 48 73 1c 08 00 	vpsrldq \$0x0,\(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 f9 f9 48 72 24 08 00 	vpsraq \$0x0,\(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 f9 f9 48 73 34 08 00 	vpsllq \$0x0,\(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 f9 79 48 73 3c 08 00 	vpslldq \$0x0,\(%r16,%r17,1\),%zmm0
+\s*[a-f0-9]+:\s*62 eb 7d 08 17 c0 01 	vextractps \$0x1,%xmm16,%r16d
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s b/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s
new file mode 100644
index 00000000000..29b076821f0
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s
@@ -0,0 +1,25 @@
+# Check 64bit old evex instructions use gpr32 with evex prefix encoding
+
+	.allow_index_reg
+	.text
+_start:
+## MRMDestMem
+         vextractf32x4	$1, %zmm0, (%r16,%r17)
+## MRMSrcMem
+         vbroadcasti32x4	(%r16,%r17), %zmm0
+## MRM0m
+         vprorq	$0, (%r16,%r17), %zmm0
+## MRM1m
+         vprolq	$0, (%r16,%r17), %zmm0
+## MRM2m
+         vpsrlq	$0, (%r16,%r17), %zmm0
+## MRM3m
+         vpsrldq	$0, (%r16,%r17), %zmm0
+## MRM4m
+         vpsraq	$0, (%r16,%r17), %zmm0
+## MRM6m
+         vpsllq	$0, (%r16,%r17), %zmm0
+## MRM7m
+         vpslldq	$0, (%r16,%r17), %zmm0
+## MRMDestReg
+         vextractps	$1, %xmm16, %r16d
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
new file mode 100644
index 00000000000..3528943a10c
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
@@ -0,0 +1,740 @@
+#as:
+#objdump: -dw -Mintel
+#name: x86_64 APX_F EVEX-Promoted insns (Intel disassembly)
+#source: x86-64-apx-evex-promoted.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 4c 7c 08 fc 8c 87 23 01 00 00\s+aadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 4c fc 08 fc bc 87 23 01 00 00\s+aadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 4c 7d 08 fc 8c 87 23 01 00 00\s+aand\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 4c fd 08 fc bc 87 23 01 00 00\s+aand\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 10 80 d0 7b\s+adc\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 d2 7b\s+adc\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 83 d1 7b\s+adc\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 83 d7 7b\s+adc\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 80 94 80 23 01 00 00 7b\s+adc\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 94 80 23 01 00 00 7b\s+adc\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 83 94 80 23 01 00 00 7b\s+adc\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 83 94 80 23 01 00 00 7b\s+adc\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 83 94 87 23 01 00 00 7b\s+adc\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 83 94 87 23 01 00 00 7b\s+adc\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 83 94 87 23 01 00 00 7b\s+adc\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 40 10 c2\s+adc\s+dl,r16b
+\s*[a-f0-9]+:\s*d5 51 10 84 87 23 01 00 00\s+adc\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],r16b
+\s*[a-f0-9]+:\s*66 d5 40 11 d0\s+adc\s+ax,r18w
+\s*[a-f0-9]+:\s*66 d5 50 11 94 80 23 01 00 00\s+adc\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*66 d5 51 11 94 87 23 01 00 00\s+adc\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*d5 44 11 ca\s+adc\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 55 11 8c 87 23 01 00 00\s+adc\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*d5 4d 11 ff\s+adc\s+r15,r31
+\s*[a-f0-9]+:\s*d5 5d 11 bc 87 23 01 00 00\s+adc\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 50 12 84 80 23 01 00 00\s+adc\s+r16b,BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5c 13 bc 80 23 01 00 00\s+adc\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 51 13 94 87 23 01 00 00\s+adc\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 55 13 8c 87 23 01 00 00\s+adc\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5d 13 bc 87 23 01 00 00\s+adc\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 dc 7d 08 66 d1\s+adcx\s+edx,r25d
+\s*[a-f0-9]+:\s*62 5c fd 08 66 ff\s+adcx\s+r15,r31
+\s*[a-f0-9]+:\s*62 6c fd 08 66 bc 80 23 01 00 00\s+adcx\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7d 08 66 8c 87 23 01 00 00\s+adcx\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 80 c0 7b\s+add\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 c2 7b\s+add\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 83 c1 7b\s+add\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 83 c7 7b\s+add\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 80 84 80 23 01 00 00 7b\s+add\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 84 80 23 01 00 00 7b\s+add\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 83 84 80 23 01 00 00 7b\s+add\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 83 84 80 23 01 00 00 7b\s+add\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 83 84 87 23 01 00 00 7b\s+add\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 83 84 87 23 01 00 00 7b\s+add\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 83 84 87 23 01 00 00 7b\s+add\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 40 00 c2\s+add\s+dl,r16b
+\s*[a-f0-9]+:\s*d5 51 00 84 87 23 01 00 00\s+add\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],r16b
+\s*[a-f0-9]+:\s*66 d5 40 01 d0\s+add\s+ax,r18w
+\s*[a-f0-9]+:\s*66 d5 50 01 94 80 23 01 00 00\s+add\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*66 d5 51 01 94 87 23 01 00 00\s+add\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*d5 44 01 ca\s+add\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 55 01 8c 87 23 01 00 00\s+add\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*d5 4d 01 ff\s+add\s+r15,r31
+\s*[a-f0-9]+:\s*d5 5d 01 bc 87 23 01 00 00\s+add\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 50 02 84 80 23 01 00 00\s+add\s+r16b,BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5c 03 bc 80 23 01 00 00\s+add\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 51 03 94 87 23 01 00 00\s+add\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 55 03 8c 87 23 01 00 00\s+add\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5d 03 bc 87 23 01 00 00\s+add\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 dc 7e 08 66 d1\s+adox\s+edx,r25d
+\s*[a-f0-9]+:\s*62 5c fe 08 66 ff\s+adox\s+r15,r31
+\s*[a-f0-9]+:\s*62 6c fe 08 66 bc 80 23 01 00 00\s+adox\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7e 08 66 8c 87 23 01 00 00\s+adox\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 cc 7e 08 dd b4 87 23 01 00 00\s+aesdec128kl xmm22,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 cc 7e 08 df b4 87 23 01 00 00\s+aesdec256kl xmm22,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 8c 87 23 01 00 00\s+aesdecwide128kl\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 9c 87 23 01 00 00\s+aesdecwide256kl\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 cc 7e 08 dc b4 87 23 01 00 00\s+aesenc128kl xmm22,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 cc 7e 08 de b4 87 23 01 00 00\s+aesenc256kl xmm22,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 84 87 23 01 00 00\s+aesencwide128kl\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 94 87 23 01 00 00\s+aesencwide256kl\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 80 e0 7b\s+and\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 e2 7b\s+and\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 83 e1 7b\s+and\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 83 e7 7b\s+and\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 80 a4 80 23 01 00 00 7b\s+and\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 a4 80 23 01 00 00 7b\s+and\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 83 a4 80 23 01 00 00 7b\s+and\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 83 a4 80 23 01 00 00 7b\s+and\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 83 a4 87 23 01 00 00 7b\s+and\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 83 a4 87 23 01 00 00 7b\s+and\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 83 a4 87 23 01 00 00 7b\s+and\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 40 20 c2\s+and\s+dl,r16b
+\s*[a-f0-9]+:\s*d5 51 20 84 87 23 01 00 00\s+and\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],r16b
+\s*[a-f0-9]+:\s*66 d5 40 21 d0\s+and\s+ax,r18w
+\s*[a-f0-9]+:\s*66 d5 50 21 94 80 23 01 00 00\s+and\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*66 d5 51 21 94 87 23 01 00 00\s+and\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*d5 44 21 ca\s+and\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 55 21 8c 87 23 01 00 00\s+and\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*d5 4d 21 ff\s+and\s+r15,r31
+\s*[a-f0-9]+:\s*d5 5d 21 bc 87 23 01 00 00\s+and\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 50 22 84 80 23 01 00 00\s+and\s+r16b,BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5c 23 bc 80 23 01 00 00\s+and\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 51 23 94 87 23 01 00 00\s+and\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 55 23 8c 87 23 01 00 00\s+and\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5d 23 bc 87 23 01 00 00\s+and\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 6c 08 f2 d1\s+andn\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 5a 84 08 f2 df\s+andn\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 da 34 00 f2 94 87 23 01 00 00\s+andn\s+edx,r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 84 00 f2 bc 87 23 01 00 00\s+andn\s+r15,r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7f 08 fc 8c 87 23 01 00 00\s+aor\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 4c ff 08 fc bc 87 23 01 00 00\s+aor\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 4c 7e 08 fc 8c 87 23 01 00 00\s+axor\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 4c fe 08 fc bc 87 23 01 00 00\s+axor\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 72 34 00 f7 d2\s+bextr\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 da 34 00 f7 94 87 23 01 00 00\s+bextr\s+edx,DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 52 84 00 f7 df\s+bextr\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 5a 84 00 f7 bc 87 23 01 00 00\s+bextr\s+r15,QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 da 6c 08 f3 d9\s+blsi\s+edx,r25d
+\s*[a-f0-9]+:\s*62 da 84 08 f3 df\s+blsi\s+r15,r31
+\s*[a-f0-9]+:\s*62 da 34 00 f3 9c 87 23 01 00 00\s+blsi\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 84 00 f3 9c 87 23 01 00 00\s+blsi\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 6c 08 f3 d1\s+blsmsk\s+edx,r25d
+\s*[a-f0-9]+:\s*62 da 84 08 f3 d7\s+blsmsk\s+r15,r31
+\s*[a-f0-9]+:\s*62 da 34 00 f3 94 87 23 01 00 00\s+blsmsk\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 84 00 f3 94 87 23 01 00 00\s+blsmsk\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 6c 08 f3 c9\s+blsr\s+edx,r25d
+\s*[a-f0-9]+:\s*62 da 84 08 f3 cf\s+blsr\s+r15,r31
+\s*[a-f0-9]+:\s*62 da 34 00 f3 8c 87 23 01 00 00\s+blsr\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 84 00 f3 8c 87 23 01 00 00\s+blsr\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 72 34 00 f5 d2\s+bzhi\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 da 34 00 f5 94 87 23 01 00 00\s+bzhi\s+edx,DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 52 84 00 f5 df\s+bzhi\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 5a 84 00 f5 bc 87 23 01 00 00\s+bzhi\s+r15,QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 da 35 00 e6 94 87 23 01 00 00\s+cmpbexadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e6 bc 87 23 01 00 00\s+cmpbexadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e2 94 87 23 01 00 00\s+cmpbxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e2 bc 87 23 01 00 00\s+cmpbxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 ec 94 87 23 01 00 00\s+cmplxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 ec bc 87 23 01 00 00\s+cmplxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e7 94 87 23 01 00 00\s+cmpnbexadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e7 bc 87 23 01 00 00\s+cmpnbexadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e3 94 87 23 01 00 00\s+cmpnbxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e3 bc 87 23 01 00 00\s+cmpnbxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 ef 94 87 23 01 00 00\s+cmpnlexadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 ef bc 87 23 01 00 00\s+cmpnlexadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 ed 94 87 23 01 00 00\s+cmpnlxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 ed bc 87 23 01 00 00\s+cmpnlxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e1 94 87 23 01 00 00\s+cmpnoxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e1 bc 87 23 01 00 00\s+cmpnoxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 eb 94 87 23 01 00 00\s+cmpnpxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 eb bc 87 23 01 00 00\s+cmpnpxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e9 94 87 23 01 00 00\s+cmpnsxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e9 bc 87 23 01 00 00\s+cmpnsxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e5 94 87 23 01 00 00\s+cmpnzxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e5 bc 87 23 01 00 00\s+cmpnzxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e0 94 87 23 01 00 00\s+cmpoxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e0 bc 87 23 01 00 00\s+cmpoxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 ea 94 87 23 01 00 00\s+cmppxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 ea bc 87 23 01 00 00\s+cmppxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e8 94 87 23 01 00 00\s+cmpsxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e8 bc 87 23 01 00 00\s+cmpsxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*62 da 35 00 e4 94 87 23 01 00 00\s+cmpzxadd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],edx,r25d
+\s*[a-f0-9]+:\s*62 5a 85 00 e4 bc 87 23 01 00 00\s+cmpzxadd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r15,r31
+\s*[a-f0-9]+:\s*d5 10 fe c8\s+dec\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 ff ca\s+dec\s+r18w
+\s*[a-f0-9]+:\s*d5 11 ff c9\s+dec\s+r25d
+\s*[a-f0-9]+:\s*d5 19 ff cf\s+dec\s+r31
+\s*[a-f0-9]+:\s*66 d5 10 ff 8c 80 23 01 00 00\s+dec\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 ff 8c 80 23 01 00 00\s+dec\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 ff 8c 80 23 01 00 00\s+dec\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 fe 8c 87 23 01 00 00\s+dec\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 ff 8c 87 23 01 00 00\s+dec\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 ff 8c 87 23 01 00 00\s+dec\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 ff 8c 87 23 01 00 00\s+dec\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f6 f0\s+div\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 f2\s+div\s+r18w
+\s*[a-f0-9]+:\s*d5 11 f7 f1\s+div\s+r25d
+\s*[a-f0-9]+:\s*d5 19 f7 f7\s+div\s+r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 b4 80 23 01 00 00\s+div\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f7 b4 80 23 01 00 00\s+div\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 f7 b4 80 23 01 00 00\s+div\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f6 b4 87 23 01 00 00\s+div\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 f7 b4 87 23 01 00 00\s+div\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f7 b4 87 23 01 00 00\s+div\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 f7 b4 87 23 01 00 00\s+div\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 dc 7e 08 da d1\s+encodekey128\s+edx,r25d
+\s*[a-f0-9]+:\s*62 dc 7e 08 db d1\s+encodekey256\s+edx,r25d
+\s*[a-f0-9]+:\s*67 62 4c 7f 08 f8 8c 87 23 01 00 00\s+enqcmd\s+r25d,\[r31d\+eax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7f 08 f8 bc 87 23 01 00 00\s+enqcmd\s+r31,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 4c 7e 08 f8 8c 87 23 01 00 00\s+enqcmds\s+r25d,\[r31d\+eax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7e 08 f8 bc 87 23 01 00 00\s+enqcmds\s+r31,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f6 f8\s+idiv\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 fa\s+idiv\s+r18w
+\s*[a-f0-9]+:\s*d5 11 f7 f9\s+idiv\s+r25d
+\s*[a-f0-9]+:\s*d5 19 f7 ff\s+idiv\s+r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 bc 80 23 01 00 00\s+idiv\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f7 bc 80 23 01 00 00\s+idiv\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 f7 bc 80 23 01 00 00\s+idiv\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f6 bc 87 23 01 00 00\s+idiv\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 f7 bc 87 23 01 00 00\s+idiv\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f7 bc 87 23 01 00 00\s+idiv\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 f7 bc 87 23 01 00 00\s+idiv\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 10 6b c2 7b\s+imul\s+ax,r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 6b d1 7b\s+imul\s+edx,r25d,0x7b
+\s*[a-f0-9]+:\s*d5 1d 6b ff 7b\s+imul\s+r15,r31,0x7b
+\s*[a-f0-9]+:\s*d5 54 6b 8c 80 23 01 00 00 7b\s+imul\s+r25d,DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 5c 6b bc 80 23 01 00 00 7b\s+imul\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 51 6b 94 87 23 01 00 00 7b\s+imul\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 55 6b 8c 87 23 01 00 00 7b\s+imul\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 5d 6b bc 87 23 01 00 00 7b\s+imul\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 f6 e8\s+imul\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 ea\s+imul\s+r18w
+\s*[a-f0-9]+:\s*66 d5 90 af c2\s+imul\s+ax,r18w
+\s*[a-f0-9]+:\s*d5 11 f7 e9\s+imul\s+r25d
+\s*[a-f0-9]+:\s*d5 91 af d1\s+imul\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 19 f7 ef\s+imul\s+r31
+\s*[a-f0-9]+:\s*d5 9d af ff\s+imul\s+r15,r31
+\s*[a-f0-9]+:\s*d5 10 f6 ac 80 23 01 00 00\s+imul\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 10 f7 ac 80 23 01 00 00\s+imul\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f7 ac 80 23 01 00 00\s+imul\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 d0 af 94 80 23 01 00 00\s+imul\s+r18w,WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 d4 af 8c 80 23 01 00 00\s+imul\s+r25d,DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 dc af bc 80 23 01 00 00\s+imul\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 f7 ac 80 23 01 00 00\s+imul\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 f7 ac 87 23 01 00 00\s+imul\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f7 ac 87 23 01 00 00\s+imul\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 f7 ac 87 23 01 00 00\s+imul\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 fe c0\s+inc\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 ff c2\s+inc\s+r18w
+\s*[a-f0-9]+:\s*d5 11 ff c1\s+inc\s+r25d
+\s*[a-f0-9]+:\s*d5 19 ff c7\s+inc\s+r31
+\s*[a-f0-9]+:\s*66 d5 10 ff 84 80 23 01 00 00\s+inc\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 ff 84 80 23 01 00 00\s+inc\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 ff 84 80 23 01 00 00\s+inc\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 fe 84 87 23 01 00 00\s+inc\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 ff 84 87 23 01 00 00\s+inc\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 ff 84 87 23 01 00 00\s+inc\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 ff 84 87 23 01 00 00\s+inc\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7e 08 f0 bc 87 23 01 00 00\s+invept\s+r31,OWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7e 08 f2 bc 87 23 01 00 00\s+invpcid\s+r31,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7e 08 f1 bc 87 23 01 00 00\s+invvpid\s+r31,OWORD PTR \[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*c5 f9 90 eb\s+kmovb\s+k5,k3
+\s*[a-f0-9]+:\s*62 61 7d 08 93 cd\s+kmovb\s+r25d,k5
+\s*[a-f0-9]+:\s*62 d9 7d 08 91 ac 87 23 01 00 00\s+kmovb\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d9 7d 08 92 e9\s+kmovb\s+k5,r25d
+\s*[a-f0-9]+:\s*62 d9 7d 08 90 ac 87 23 01 00 00\s+kmovb\s+k5,BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*c4 e1 f9 90 eb\s+kmovd\s+k5,k3
+\s*[a-f0-9]+:\s*62 61 7f 08 93 cd\s+kmovd\s+r25d,k5
+\s*[a-f0-9]+:\s*62 d9 fd 08 91 ac 87 23 01 00 00\s+kmovd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d9 7f 08 92 e9\s+kmovd\s+k5,r25d
+\s*[a-f0-9]+:\s*62 d9 fd 08 90 ac 87 23 01 00 00\s+kmovd\s+k5,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*c4 e1 f8 90 eb\s+kmovq\s+k5,k3
+\s*[a-f0-9]+:\s*62 61 ff 08 93 fd\s+kmovq\s+r31,k5
+\s*[a-f0-9]+:\s*62 d9 fc 08 91 ac 87 23 01 00 00\s+kmovq\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d9 ff 08 92 ef\s+kmovq\s+k5,r31
+\s*[a-f0-9]+:\s*62 d9 fc 08 90 ac 87 23 01 00 00\s+kmovq\s+k5,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*c5 f8 90 eb\s+kmovw\s+k5,k3
+\s*[a-f0-9]+:\s*62 61 7c 08 93 cd\s+kmovw\s+r25d,k5
+\s*[a-f0-9]+:\s*62 d9 7c 08 91 ac 87 23 01 00 00\s+kmovw\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],k5
+\s*[a-f0-9]+:\s*62 d9 7c 08 92 e9\s+kmovw\s+k5,r25d
+\s*[a-f0-9]+:\s*62 d9 7c 08 90 ac 87 23 01 00 00\s+kmovw\s+k5,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 7c 08 49 84 87 23 01 00 00\s+ldtilecfg\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 f3 d5 90 bd c2\s+lzcnt\s+ax,r18w
+\s*[a-f0-9]+:\s*f3 d5 91 bd d1\s+lzcnt\s+edx,r25d
+\s*[a-f0-9]+:\s*f3 d5 9d bd ff\s+lzcnt\s+r15,r31
+\s*[a-f0-9]+:\s*66 f3 d5 d0 bd 94 80 23 01 00 00\s+lzcnt\s+r18w,WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*f3 d5 dc bd bc 80 23 01 00 00\s+lzcnt\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 f3 d5 d1 bd 94 87 23 01 00 00\s+lzcnt\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*f3 d5 d5 bd 8c 87 23 01 00 00\s+lzcnt\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 fc 7d 08 60 c2\s+movbe\s+ax,r18w
+\s*[a-f0-9]+:\s*62 ec 7d 08 61 94 80 23 01 00 00\s+movbe\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*62 cc 7d 08 61 94 87 23 01 00 00\s+movbe\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*62 dc 7c 08 60 d1\s+movbe\s+edx,r25d
+\s*[a-f0-9]+:\s*62 6c 7c 08 61 8c 80 23 01 00 00\s+movbe\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 5c fc 08 60 ff\s+movbe\s+r15,r31
+\s*[a-f0-9]+:\s*62 6c fc 08 61 bc 80 23 01 00 00\s+movbe\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 4c fc 08 61 bc 87 23 01 00 00\s+movbe\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 6c fc 08 60 bc 80 23 01 00 00\s+movbe\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 cc 7d 08 60 94 87 23 01 00 00\s+movbe\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7c 08 60 8c 87 23 01 00 00\s+movbe\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*67 62 4c 7d 08 f8 8c 87 23 01 00 00\s+movdir64b\s+r25d,\[r31d\+eax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7d 08 f8 bc 87 23 01 00 00\s+movdir64b\s+r31,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7c 08 f9 8c 87 23 01 00 00\s+movdiri\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 4c fc 08 f9 bc 87 23 01 00 00\s+movdiri\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 10 f6 e0\s+mul\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 e2\s+mul\s+r18w
+\s*[a-f0-9]+:\s*d5 11 f7 e1\s+mul\s+r25d
+\s*[a-f0-9]+:\s*d5 19 f7 e7\s+mul\s+r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 a4 80 23 01 00 00\s+mul\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f7 a4 80 23 01 00 00\s+mul\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 f7 a4 80 23 01 00 00\s+mul\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f6 a4 87 23 01 00 00\s+mul\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 f7 a4 87 23 01 00 00\s+mul\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f7 a4 87 23 01 00 00\s+mul\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 f7 a4 87 23 01 00 00\s+mul\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 6f 08 f6 d1\s+mulx\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 5a 87 08 f6 df\s+mulx\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 da 37 00 f6 94 87 23 01 00 00\s+mulx\s+edx,r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 87 00 f6 bc 87 23 01 00 00\s+mulx\s+r15,r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f6 d8\s+neg\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 da\s+neg\s+r18w
+\s*[a-f0-9]+:\s*d5 11 f7 d9\s+neg\s+r25d
+\s*[a-f0-9]+:\s*d5 19 f7 df\s+neg\s+r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 9c 80 23 01 00 00\s+neg\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f7 9c 80 23 01 00 00\s+neg\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 f7 9c 80 23 01 00 00\s+neg\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f6 9c 87 23 01 00 00\s+neg\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 f7 9c 87 23 01 00 00\s+neg\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f7 9c 87 23 01 00 00\s+neg\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 f7 9c 87 23 01 00 00\s+neg\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f6 d0\s+not\s+r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 d2\s+not\s+r18w
+\s*[a-f0-9]+:\s*d5 11 f7 d1\s+not\s+r25d
+\s*[a-f0-9]+:\s*d5 19 f7 d7\s+not\s+r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 94 80 23 01 00 00\s+not\s+WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 f7 94 80 23 01 00 00\s+not\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 18 f7 94 80 23 01 00 00\s+not\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f6 94 87 23 01 00 00\s+not\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 11 f7 94 87 23 01 00 00\s+not\s+WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 11 f7 94 87 23 01 00 00\s+not\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 19 f7 94 87 23 01 00 00\s+not\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 80 c8 7b\s+or\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 ca 7b\s+or\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 83 c9 7b\s+or\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 83 cf 7b\s+or\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 80 8c 80 23 01 00 00 7b\s+or\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 8c 80 23 01 00 00 7b\s+or\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 83 8c 80 23 01 00 00 7b\s+or\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 83 8c 80 23 01 00 00 7b\s+or\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 83 8c 87 23 01 00 00 7b\s+or\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 83 8c 87 23 01 00 00 7b\s+or\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 83 8c 87 23 01 00 00 7b\s+or\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 40 08 c2\s+or\s+dl,r16b
+\s*[a-f0-9]+:\s*d5 51 08 84 87 23 01 00 00\s+or\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],r16b
+\s*[a-f0-9]+:\s*66 d5 40 09 d0\s+or\s+ax,r18w
+\s*[a-f0-9]+:\s*66 d5 50 09 94 80 23 01 00 00\s+or\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*66 d5 51 09 94 87 23 01 00 00\s+or\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*d5 44 09 ca\s+or\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 55 09 8c 87 23 01 00 00\s+or\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*d5 4d 09 ff\s+or\s+r15,r31
+\s*[a-f0-9]+:\s*d5 5d 09 bc 87 23 01 00 00\s+or\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 50 0a 84 80 23 01 00 00\s+or\s+r16b,BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5c 0b bc 80 23 01 00 00\s+or\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 51 0b 94 87 23 01 00 00\s+or\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 55 0b 8c 87 23 01 00 00\s+or\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5d 0b bc 87 23 01 00 00\s+or\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 6f 08 f5 d1\s+pdep\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 5a 87 08 f5 df\s+pdep\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 da 37 00 f5 94 87 23 01 00 00\s+pdep\s+edx,r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 87 00 f5 bc 87 23 01 00 00\s+pdep\s+r15,r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 6e 08 f5 d1\s+pext\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 5a 86 08 f5 df\s+pext\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 da 36 00 f5 94 87 23 01 00 00\s+pext\s+edx,r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5a 86 00 f5 bc 87 23 01 00 00\s+pext\s+r15,r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 f3 d5 90 b8 c2\s+popcnt\s+ax,r18w
+\s*[a-f0-9]+:\s*f3 d5 91 b8 d1\s+popcnt\s+edx,r25d
+\s*[a-f0-9]+:\s*f3 d5 9d b8 ff\s+popcnt\s+r15,r31
+\s*[a-f0-9]+:\s*66 f3 d5 d0 b8 94 80 23 01 00 00\s+popcnt\s+r18w,WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*f3 d5 dc b8 bc 80 23 01 00 00\s+popcnt\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 f3 d5 d1 b8 94 87 23 01 00 00\s+popcnt\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*f3 d5 d5 b8 8c 87 23 01 00 00\s+popcnt\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 c0 d0 7b\s+rcl\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 d2 7b\s+rcl\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 d1 7b\s+rcl\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 d7 7b\s+rcl\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 94 80 23 01 00 00 7b\s+rcl\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 94 80 23 01 00 00 7b\s+rcl\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c1 94 80 23 01 00 00 7b\s+rcl\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 c1 94 80 23 01 00 00 7b\s+rcl\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 c1 94 87 23 01 00 00 7b\s+rcl\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 94 87 23 01 00 00 7b\s+rcl\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 94 87 23 01 00 00 7b\s+rcl\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 d0 d0\s+rcl\s+r16b,1
+\s*[a-f0-9]+:\s*66 d5 10 d1 d2\s+rcl\s+r18w,1
+\s*[a-f0-9]+:\s*d5 11 d1 d1\s+rcl\s+r25d,1
+\s*[a-f0-9]+:\s*d5 19 d1 d7\s+rcl\s+r31,1
+\s*[a-f0-9]+:\s*d5 10 d0 94 80 23 01 00 00\s+rcl\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 10 d1 94 80 23 01 00 00\s+rcl\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d1 94 80 23 01 00 00\s+rcl\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 18 d1 94 80 23 01 00 00\s+rcl\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 11 d1 94 87 23 01 00 00\s+rcl\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 11 d1 94 87 23 01 00 00\s+rcl\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 19 d1 94 87 23 01 00 00\s+rcl\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d2 d0\s+rcl\s+r16b,cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 d2\s+rcl\s+r18w,cl
+\s*[a-f0-9]+:\s*d5 11 d3 d1\s+rcl\s+r25d,cl
+\s*[a-f0-9]+:\s*d5 19 d3 d7\s+rcl\s+r31,cl
+\s*[a-f0-9]+:\s*d5 10 d2 94 80 23 01 00 00\s+rcl\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 94 80 23 01 00 00\s+rcl\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 d3 94 80 23 01 00 00\s+rcl\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 18 d3 94 80 23 01 00 00\s+rcl\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 11 d3 94 87 23 01 00 00\s+rcl\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d3 94 87 23 01 00 00\s+rcl\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 19 d3 94 87 23 01 00 00\s+rcl\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 c0 d8 7b\s+rcr\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 da 7b\s+rcr\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 d9 7b\s+rcr\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 df 7b\s+rcr\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 9c 80 23 01 00 00 7b\s+rcr\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 9c 80 23 01 00 00 7b\s+rcr\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c1 9c 80 23 01 00 00 7b\s+rcr\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 c1 9c 80 23 01 00 00 7b\s+rcr\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 c1 9c 87 23 01 00 00 7b\s+rcr\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 9c 87 23 01 00 00 7b\s+rcr\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 9c 87 23 01 00 00 7b\s+rcr\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 d0 d8\s+rcr\s+r16b,1
+\s*[a-f0-9]+:\s*66 d5 10 d1 da\s+rcr\s+r18w,1
+\s*[a-f0-9]+:\s*d5 11 d1 d9\s+rcr\s+r25d,1
+\s*[a-f0-9]+:\s*d5 19 d1 df\s+rcr\s+r31,1
+\s*[a-f0-9]+:\s*d5 10 d0 9c 80 23 01 00 00\s+rcr\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 10 d1 9c 80 23 01 00 00\s+rcr\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d1 9c 80 23 01 00 00\s+rcr\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 18 d1 9c 80 23 01 00 00\s+rcr\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 11 d1 9c 87 23 01 00 00\s+rcr\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 11 d1 9c 87 23 01 00 00\s+rcr\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 19 d1 9c 87 23 01 00 00\s+rcr\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d2 d8\s+rcr\s+r16b,cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 da\s+rcr\s+r18w,cl
+\s*[a-f0-9]+:\s*d5 11 d3 d9\s+rcr\s+r25d,cl
+\s*[a-f0-9]+:\s*d5 19 d3 df\s+rcr\s+r31,cl
+\s*[a-f0-9]+:\s*d5 10 d2 9c 80 23 01 00 00\s+rcr\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 9c 80 23 01 00 00\s+rcr\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 d3 9c 80 23 01 00 00\s+rcr\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 18 d3 9c 80 23 01 00 00\s+rcr\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 11 d3 9c 87 23 01 00 00\s+rcr\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d3 9c 87 23 01 00 00\s+rcr\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 19 d3 9c 87 23 01 00 00\s+rcr\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 c0 c0 7b\s+rol\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 c2 7b\s+rol\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 c1 7b\s+rol\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 c7 7b\s+rol\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 84 80 23 01 00 00 7b\s+rol\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 84 80 23 01 00 00 7b\s+rol\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c1 84 80 23 01 00 00 7b\s+rol\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 c1 84 80 23 01 00 00 7b\s+rol\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 c1 84 87 23 01 00 00 7b\s+rol\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 84 87 23 01 00 00 7b\s+rol\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 84 87 23 01 00 00 7b\s+rol\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 d0 c0\s+rol\s+r16b,1
+\s*[a-f0-9]+:\s*66 d5 10 d1 c2\s+rol\s+r18w,1
+\s*[a-f0-9]+:\s*d5 11 d1 c1\s+rol\s+r25d,1
+\s*[a-f0-9]+:\s*d5 19 d1 c7\s+rol\s+r31,1
+\s*[a-f0-9]+:\s*d5 10 d0 84 80 23 01 00 00\s+rol\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 10 d1 84 80 23 01 00 00\s+rol\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d1 84 80 23 01 00 00\s+rol\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 18 d1 84 80 23 01 00 00\s+rol\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 11 d1 84 87 23 01 00 00\s+rol\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 11 d1 84 87 23 01 00 00\s+rol\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 19 d1 84 87 23 01 00 00\s+rol\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d2 c0\s+rol\s+r16b,cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 c2\s+rol\s+r18w,cl
+\s*[a-f0-9]+:\s*d5 11 d3 c1\s+rol\s+r25d,cl
+\s*[a-f0-9]+:\s*d5 19 d3 c7\s+rol\s+r31,cl
+\s*[a-f0-9]+:\s*d5 10 d2 84 80 23 01 00 00\s+rol\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 84 80 23 01 00 00\s+rol\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 d3 84 80 23 01 00 00\s+rol\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 18 d3 84 80 23 01 00 00\s+rol\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 11 d3 84 87 23 01 00 00\s+rol\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d3 84 87 23 01 00 00\s+rol\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 19 d3 84 87 23 01 00 00\s+rol\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 c0 c8 7b\s+ror\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 ca 7b\s+ror\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 c9 7b\s+ror\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 cf 7b\s+ror\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 8c 80 23 01 00 00 7b\s+ror\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 8c 80 23 01 00 00 7b\s+ror\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c1 8c 80 23 01 00 00 7b\s+ror\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 c1 8c 80 23 01 00 00 7b\s+ror\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 c1 8c 87 23 01 00 00 7b\s+ror\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 8c 87 23 01 00 00 7b\s+ror\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 8c 87 23 01 00 00 7b\s+ror\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 d0 c8\s+ror\s+r16b,1
+\s*[a-f0-9]+:\s*66 d5 10 d1 ca\s+ror\s+r18w,1
+\s*[a-f0-9]+:\s*d5 11 d1 c9\s+ror\s+r25d,1
+\s*[a-f0-9]+:\s*d5 19 d1 cf\s+ror\s+r31,1
+\s*[a-f0-9]+:\s*d5 10 d0 8c 80 23 01 00 00\s+ror\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 10 d1 8c 80 23 01 00 00\s+ror\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d1 8c 80 23 01 00 00\s+ror\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 18 d1 8c 80 23 01 00 00\s+ror\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 11 d1 8c 87 23 01 00 00\s+ror\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 11 d1 8c 87 23 01 00 00\s+ror\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 19 d1 8c 87 23 01 00 00\s+ror\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d2 c8\s+ror\s+r16b,cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 ca\s+ror\s+r18w,cl
+\s*[a-f0-9]+:\s*d5 11 d3 c9\s+ror\s+r25d,cl
+\s*[a-f0-9]+:\s*d5 19 d3 cf\s+ror\s+r31,cl
+\s*[a-f0-9]+:\s*d5 10 d2 8c 80 23 01 00 00\s+ror\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 8c 80 23 01 00 00\s+ror\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 d3 8c 80 23 01 00 00\s+ror\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 18 d3 8c 80 23 01 00 00\s+ror\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 11 d3 8c 87 23 01 00 00\s+ror\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d3 8c 87 23 01 00 00\s+ror\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 19 d3 8c 87 23 01 00 00\s+ror\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 db 7f 08 f0 d1 7b\s+rorx\s+edx,r25d,0x7b
+\s*[a-f0-9]+:\s*62 5b ff 08 f0 ff 7b\s+rorx\s+r15,r31,0x7b
+\s*[a-f0-9]+:\s*62 4b 7f 08 f0 8c 87 23 01 00 00 7b\s+rorx\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 4b ff 08 f0 bc 87 23 01 00 00 7b\s+rorx\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 f8 7b\s+sar\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 fa 7b\s+sar\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 f9 7b\s+sar\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 ff 7b\s+sar\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 bc 80 23 01 00 00 7b\s+sar\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 bc 80 23 01 00 00 7b\s+sar\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c1 bc 80 23 01 00 00 7b\s+sar\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 c1 bc 80 23 01 00 00 7b\s+sar\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 c1 bc 87 23 01 00 00 7b\s+sar\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 bc 87 23 01 00 00 7b\s+sar\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 bc 87 23 01 00 00 7b\s+sar\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 d0 f8\s+sar\s+r16b,1
+\s*[a-f0-9]+:\s*66 d5 10 d1 fa\s+sar\s+r18w,1
+\s*[a-f0-9]+:\s*d5 11 d1 f9\s+sar\s+r25d,1
+\s*[a-f0-9]+:\s*d5 19 d1 ff\s+sar\s+r31,1
+\s*[a-f0-9]+:\s*d5 10 d0 bc 80 23 01 00 00\s+sar\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 10 d1 bc 80 23 01 00 00\s+sar\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d1 bc 80 23 01 00 00\s+sar\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 18 d1 bc 80 23 01 00 00\s+sar\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 11 d1 bc 87 23 01 00 00\s+sar\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 11 d1 bc 87 23 01 00 00\s+sar\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 19 d1 bc 87 23 01 00 00\s+sar\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d2 f8\s+sar\s+r16b,cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 fa\s+sar\s+r18w,cl
+\s*[a-f0-9]+:\s*d5 11 d3 f9\s+sar\s+r25d,cl
+\s*[a-f0-9]+:\s*d5 19 d3 ff\s+sar\s+r31,cl
+\s*[a-f0-9]+:\s*d5 10 d2 bc 80 23 01 00 00\s+sar\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 bc 80 23 01 00 00\s+sar\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 d3 bc 80 23 01 00 00\s+sar\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 18 d3 bc 80 23 01 00 00\s+sar\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 11 d3 bc 87 23 01 00 00\s+sar\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d3 bc 87 23 01 00 00\s+sar\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 19 d3 bc 87 23 01 00 00\s+sar\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 72 36 00 f7 d2\s+sarx\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 da 36 00 f7 94 87 23 01 00 00\s+sarx\s+edx,DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 52 86 00 f7 df\s+sarx\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 5a 86 00 f7 bc 87 23 01 00 00\s+sarx\s+r15,QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 10 80 d8 7b\s+sbb\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 da 7b\s+sbb\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 83 d9 7b\s+sbb\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 83 df 7b\s+sbb\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 80 9c 80 23 01 00 00 7b\s+sbb\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 9c 80 23 01 00 00 7b\s+sbb\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 83 9c 80 23 01 00 00 7b\s+sbb\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 83 9c 80 23 01 00 00 7b\s+sbb\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 83 9c 87 23 01 00 00 7b\s+sbb\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 83 9c 87 23 01 00 00 7b\s+sbb\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 83 9c 87 23 01 00 00 7b\s+sbb\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 40 18 c2\s+sbb\s+dl,r16b
+\s*[a-f0-9]+:\s*d5 51 18 84 87 23 01 00 00\s+sbb\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],r16b
+\s*[a-f0-9]+:\s*66 d5 40 19 d0\s+sbb\s+ax,r18w
+\s*[a-f0-9]+:\s*66 d5 50 19 94 80 23 01 00 00\s+sbb\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*66 d5 51 19 94 87 23 01 00 00\s+sbb\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*d5 44 19 ca\s+sbb\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 55 19 8c 87 23 01 00 00\s+sbb\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*d5 4d 19 ff\s+sbb\s+r15,r31
+\s*[a-f0-9]+:\s*d5 5d 19 bc 87 23 01 00 00\s+sbb\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 50 1a 84 80 23 01 00 00\s+sbb\s+r16b,BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5c 1b bc 80 23 01 00 00\s+sbb\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 51 1b 94 87 23 01 00 00\s+sbb\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 55 1b 8c 87 23 01 00 00\s+sbb\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5d 1b bc 87 23 01 00 00\s+sbb\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 a4 7c 08 d9 f7\s+sha1msg1 xmm22,xmm23
+\s*[a-f0-9]+:\s*62 cc 7c 08 d9 b4 87 23 01 00 00\s+sha1msg1 xmm22,XMMWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 a4 7c 08 da f7\s+sha1msg2 xmm22,xmm23
+\s*[a-f0-9]+:\s*62 cc 7c 08 da b4 87 23 01 00 00\s+sha1msg2 xmm22,XMMWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 a4 7c 08 d8 f7\s+sha1nexte xmm22,xmm23
+\s*[a-f0-9]+:\s*62 cc 7c 08 d8 b4 87 23 01 00 00\s+sha1nexte xmm22,XMMWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 a4 7c 08 d4 f7 7b\s+sha1rnds4 xmm22,xmm23,0x7b
+\s*[a-f0-9]+:\s*62 cc 7c 08 d4 b4 87 23 01 00 00 7b\s+sha1rnds4 xmm22,XMMWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 a4 7c 08 dc f7\s+sha256msg1 xmm22,xmm23
+\s*[a-f0-9]+:\s*62 cc 7c 08 dc b4 87 23 01 00 00\s+sha256msg1 xmm22,XMMWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 a4 7c 08 dd f7\s+sha256msg2 xmm22,xmm23
+\s*[a-f0-9]+:\s*62 cc 7c 08 dd b4 87 23 01 00 00\s+sha256msg2 xmm22,XMMWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 5c 7c 08 db a4 87 23 01 00 00\s+sha256rnds2 xmm12,XMMWORD PTR\s+\[r31\+rax\*4\+0x123\],xmm0
+\s*[a-f0-9]+:\s*d5 10 c0 e0 7b\s+shl\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 e2 7b\s+shl\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 e1 7b\s+shl\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 e7 7b\s+shl\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 a4 80 23 01 00 00 7b\s+shl\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 a4 80 23 01 00 00 7b\s+shl\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c1 a4 80 23 01 00 00 7b\s+shl\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 c1 a4 80 23 01 00 00 7b\s+shl\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c0 a4 87 23 01 00 00 7b\s+shl\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 c1 a4 87 23 01 00 00 7b\s+shl\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 a4 87 23 01 00 00 7b\s+shl\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 a4 87 23 01 00 00 7b\s+shl\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 d0 e0\s+shl\s+r16b,1
+\s*[a-f0-9]+:\s*66 d5 10 d1 e2\s+shl\s+r18w,1
+\s*[a-f0-9]+:\s*d5 11 d1 e1\s+shl\s+r25d,1
+\s*[a-f0-9]+:\s*d5 19 d1 e7\s+shl\s+r31,1
+\s*[a-f0-9]+:\s*d5 10 d0 a4 80 23 01 00 00\s+shl\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 10 d1 a4 80 23 01 00 00\s+shl\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d1 a4 80 23 01 00 00\s+shl\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 18 d1 a4 80 23 01 00 00\s+shl\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 11 d1 a4 87 23 01 00 00\s+shl\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 11 d1 a4 87 23 01 00 00\s+shl\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 19 d1 a4 87 23 01 00 00\s+shl\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d2 e0\s+shl\s+r16b,cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 e2\s+shl\s+r18w,cl
+\s*[a-f0-9]+:\s*d5 11 d3 e1\s+shl\s+r25d,cl
+\s*[a-f0-9]+:\s*d5 19 d3 e7\s+shl\s+r31,cl
+\s*[a-f0-9]+:\s*d5 10 d2 a4 80 23 01 00 00\s+shl\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 a4 80 23 01 00 00\s+shl\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 d3 a4 80 23 01 00 00\s+shl\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 18 d3 a4 80 23 01 00 00\s+shl\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d2 a4 87 23 01 00 00\s+shl\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 11 d3 a4 87 23 01 00 00\s+shl\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d3 a4 87 23 01 00 00\s+shl\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 19 d3 a4 87 23 01 00 00\s+shl\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 c0 a4 d0 7b\s+shld\s+ax,r18w,0x7b
+\s*[a-f0-9]+:\s*66 d5 d1 a4 94 87 23 01 00 00 7b\s+shld\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w,0x7b
+\s*[a-f0-9]+:\s*d5 c4 a4 ca 7b\s+shld\s+edx,r25d,0x7b
+\s*[a-f0-9]+:\s*d5 d5 a4 8c 87 23 01 00 00 7b\s+shld\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d,0x7b
+\s*[a-f0-9]+:\s*d5 cd a4 ff 7b\s+shld\s+r15,r31,0x7b
+\s*[a-f0-9]+:\s*d5 dc a4 bc 80 23 01 00 00 7b\s+shld\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],r31,0x7b
+\s*[a-f0-9]+:\s*66 d5 c0 a5 d0\s+shld\s+ax,r18w,cl
+\s*[a-f0-9]+:\s*66 d5 d0 a5 94 80 23 01 00 00\s+shld\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w,cl
+\s*[a-f0-9]+:\s*d5 c4 a5 ca\s+shld\s+edx,r25d,cl
+\s*[a-f0-9]+:\s*d5 d4 a5 8c 80 23 01 00 00\s+shld\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],r25d,cl
+\s*[a-f0-9]+:\s*d5 d5 a5 8c 87 23 01 00 00\s+shld\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d,cl
+\s*[a-f0-9]+:\s*d5 cd a5 ff\s+shld\s+r15,r31,cl
+\s*[a-f0-9]+:\s*d5 dd a5 bc 87 23 01 00 00\s+shld\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31,cl
+\s*[a-f0-9]+:\s*62 72 35 00 f7 d2\s+shlx\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 da 35 00 f7 94 87 23 01 00 00\s+shlx\s+edx,DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 52 85 00 f7 df\s+shlx\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 5a 85 00 f7 bc 87 23 01 00 00\s+shlx\s+r15,QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 10 c0 e8 7b\s+shr\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 ea 7b\s+shr\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 e9 7b\s+shr\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 ef 7b\s+shr\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 c0 ac 80 23 01 00 00 7b\s+shr\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 c1 ac 80 23 01 00 00 7b\s+shr\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 c1 ac 80 23 01 00 00 7b\s+shr\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 c1 ac 80 23 01 00 00 7b\s+shr\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 c1 ac 87 23 01 00 00 7b\s+shr\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 c1 ac 87 23 01 00 00 7b\s+shr\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 c1 ac 87 23 01 00 00 7b\s+shr\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 d0 e8\s+shr\s+r16b,1
+\s*[a-f0-9]+:\s*66 d5 10 d1 ea\s+shr\s+r18w,1
+\s*[a-f0-9]+:\s*d5 11 d1 e9\s+shr\s+r25d,1
+\s*[a-f0-9]+:\s*d5 19 d1 ef\s+shr\s+r31,1
+\s*[a-f0-9]+:\s*d5 10 d0 ac 80 23 01 00 00\s+shr\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 10 d1 ac 80 23 01 00 00\s+shr\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d1 ac 80 23 01 00 00\s+shr\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 18 d1 ac 80 23 01 00 00\s+shr\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*66 d5 11 d1 ac 87 23 01 00 00\s+shr\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 11 d1 ac 87 23 01 00 00\s+shr\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 19 d1 ac 87 23 01 00 00\s+shr\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*d5 10 d2 e8\s+shr\s+r16b,cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 ea\s+shr\s+r18w,cl
+\s*[a-f0-9]+:\s*d5 11 d3 e9\s+shr\s+r25d,cl
+\s*[a-f0-9]+:\s*d5 19 d3 ef\s+shr\s+r31,cl
+\s*[a-f0-9]+:\s*d5 10 d2 ac 80 23 01 00 00\s+shr\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 10 d3 ac 80 23 01 00 00\s+shr\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 10 d3 ac 80 23 01 00 00\s+shr\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 18 d3 ac 80 23 01 00 00\s+shr\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 11 d3 ac 87 23 01 00 00\s+shr\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 11 d3 ac 87 23 01 00 00\s+shr\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*d5 19 d3 ac 87 23 01 00 00\s+shr\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*66 d5 c0 ac d0 7b\s+shrd\s+ax,r18w,0x7b
+\s*[a-f0-9]+:\s*66 d5 d1 ac 94 87 23 01 00 00 7b\s+shrd\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w,0x7b
+\s*[a-f0-9]+:\s*d5 c4 ac ca 7b\s+shrd\s+edx,r25d,0x7b
+\s*[a-f0-9]+:\s*d5 d5 ac 8c 87 23 01 00 00 7b\s+shrd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d,0x7b
+\s*[a-f0-9]+:\s*d5 cd ac ff 7b\s+shrd\s+r15,r31,0x7b
+\s*[a-f0-9]+:\s*d5 dc ac bc 80 23 01 00 00 7b\s+shrd\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],r31,0x7b
+\s*[a-f0-9]+:\s*66 d5 c0 ad d0\s+shrd\s+ax,r18w,cl
+\s*[a-f0-9]+:\s*66 d5 d0 ad 94 80 23 01 00 00\s+shrd\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w,cl
+\s*[a-f0-9]+:\s*d5 c4 ad ca\s+shrd\s+edx,r25d,cl
+\s*[a-f0-9]+:\s*d5 d4 ad 8c 80 23 01 00 00\s+shrd\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],r25d,cl
+\s*[a-f0-9]+:\s*d5 d5 ad 8c 87 23 01 00 00\s+shrd\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d,cl
+\s*[a-f0-9]+:\s*d5 cd ad ff\s+shrd\s+r15,r31,cl
+\s*[a-f0-9]+:\s*d5 dd ad bc 87 23 01 00 00\s+shrd\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31,cl
+\s*[a-f0-9]+:\s*62 72 37 00 f7 d2\s+shrx\s+r10d,edx,r25d
+\s*[a-f0-9]+:\s*62 da 37 00 f7 94 87 23 01 00 00\s+shrx\s+edx,DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 52 87 00 f7 df\s+shrx\s+r11,r15,r31
+\s*[a-f0-9]+:\s*62 5a 87 00 f7 bc 87 23 01 00 00\s+shrx\s+r15,QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 da 7d 08 49 84 87 23 01 00 00\s+sttilecfg\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 10 80 e8 7b\s+sub\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 ea 7b\s+sub\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 83 e9 7b\s+sub\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 83 ef 7b\s+sub\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 80 ac 80 23 01 00 00 7b\s+sub\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 ac 80 23 01 00 00 7b\s+sub\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 83 ac 80 23 01 00 00 7b\s+sub\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 83 ac 80 23 01 00 00 7b\s+sub\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 83 ac 87 23 01 00 00 7b\s+sub\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 83 ac 87 23 01 00 00 7b\s+sub\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 83 ac 87 23 01 00 00 7b\s+sub\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 40 28 c2\s+sub\s+dl,r16b
+\s*[a-f0-9]+:\s*d5 51 28 84 87 23 01 00 00\s+sub\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],r16b
+\s*[a-f0-9]+:\s*66 d5 40 29 d0\s+sub\s+ax,r18w
+\s*[a-f0-9]+:\s*66 d5 50 29 94 80 23 01 00 00\s+sub\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*66 d5 51 29 94 87 23 01 00 00\s+sub\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*d5 44 29 ca\s+sub\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 55 29 8c 87 23 01 00 00\s+sub\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*d5 4d 29 ff\s+sub\s+r15,r31
+\s*[a-f0-9]+:\s*d5 5d 29 bc 87 23 01 00 00\s+sub\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 50 2a 84 80 23 01 00 00\s+sub\s+r16b,BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5c 2b bc 80 23 01 00 00\s+sub\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 51 2b 94 87 23 01 00 00\s+sub\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 55 2b 8c 87 23 01 00 00\s+sub\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5d 2b bc 87 23 01 00 00\s+sub\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 7f 08 4b b4 87 23 01 00 00\s+tileloadd tmm6,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 7d 08 4b b4 87 23 01 00 00\s+tileloaddt1 tmm6,\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 da 7e 08 4b b4 87 23 01 00 00\s+tilestored\s+\[r31\+rax\*4\+0x123\],tmm6
+\s*[a-f0-9]+:\s*66 f3 d5 90 bc c2\s+tzcnt\s+ax,r18w
+\s*[a-f0-9]+:\s*f3 d5 91 bc d1\s+tzcnt\s+edx,r25d
+\s*[a-f0-9]+:\s*f3 d5 9d bc ff\s+tzcnt\s+r15,r31
+\s*[a-f0-9]+:\s*66 f3 d5 d0 bc 94 80 23 01 00 00\s+tzcnt\s+r18w,WORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*f3 d5 dc bc bc 80 23 01 00 00\s+tzcnt\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 f3 d5 d1 bc 94 87 23 01 00 00\s+tzcnt\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*f3 d5 d5 bc 8c 87 23 01 00 00\s+tzcnt\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 4c 7c 08 66 8c 87 23 01 00 00\s+wrssd\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 4c fc 08 66 bc 87 23 01 00 00\s+wrssq\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*62 4c 7d 08 65 8c 87 23 01 00 00\s+wrussd\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*62 4c fd 08 65 bc 87 23 01 00 00\s+wrussq\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 10 80 f0 7b\s+xor\s+r16b,0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 f2 7b\s+xor\s+r18w,0x7b
+\s*[a-f0-9]+:\s*d5 11 83 f1 7b\s+xor\s+r25d,0x7b
+\s*[a-f0-9]+:\s*d5 19 83 f7 7b\s+xor\s+r31,0x7b
+\s*[a-f0-9]+:\s*d5 10 80 b4 80 23 01 00 00 7b\s+xor\s+BYTE PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 10 83 b4 80 23 01 00 00 7b\s+xor\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 10 83 b4 80 23 01 00 00 7b\s+xor\s+DWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 18 83 b4 80 23 01 00 00 7b\s+xor\s+QWORD PTR\s+\[r16\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*66 d5 11 83 b4 87 23 01 00 00 7b\s+xor\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 11 83 b4 87 23 01 00 00 7b\s+xor\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 19 83 b4 87 23 01 00 00 7b\s+xor\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*d5 40 30 c2\s+xor\s+dl,r16b
+\s*[a-f0-9]+:\s*d5 51 30 84 87 23 01 00 00\s+xor\s+BYTE PTR\s+\[r31\+rax\*4\+0x123\],r16b
+\s*[a-f0-9]+:\s*66 d5 40 31 d0\s+xor\s+ax,r18w
+\s*[a-f0-9]+:\s*66 d5 50 31 94 80 23 01 00 00\s+xor\s+WORD PTR\s+\[r16\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*66 d5 51 31 94 87 23 01 00 00\s+xor\s+WORD PTR\s+\[r31\+rax\*4\+0x123\],r18w
+\s*[a-f0-9]+:\s*d5 44 31 ca\s+xor\s+edx,r25d
+\s*[a-f0-9]+:\s*d5 55 31 8c 87 23 01 00 00\s+xor\s+DWORD PTR\s+\[r31\+rax\*4\+0x123\],r25d
+\s*[a-f0-9]+:\s*d5 4d 31 ff\s+xor\s+r15,r31
+\s*[a-f0-9]+:\s*d5 5d 31 bc 87 23 01 00 00\s+xor\s+QWORD PTR\s+\[r31\+rax\*4\+0x123\],r31
+\s*[a-f0-9]+:\s*d5 50 32 84 80 23 01 00 00\s+xor\s+r16b,BYTE PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5c 33 bc 80 23 01 00 00\s+xor\s+r31,QWORD PTR\s+\[r16\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*66 d5 51 33 94 87 23 01 00 00\s+xor\s+r18w,WORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 55 33 8c 87 23 01 00 00\s+xor\s+r25d,DWORD PTR\s+\[r31\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*d5 5d 33 bc 87 23 01 00 00\s+xor\s+r31,QWORD PTR\s+\[r31\+rax\*4\+0x123\]
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
new file mode 100644
index 00000000000..be85a750232
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
@@ -0,0 +1,740 @@
+#as:
+#objdump: -dw
+#name: x86_64 APX_F EVEX-Promoted insns 
+#source: x86-64-apx-evex-promoted.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 4c 7c 08 fc 8c 87 23 01 00 00\s+aadd\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c fc 08 fc bc 87 23 01 00 00\s+aadd\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c 7d 08 fc 8c 87 23 01 00 00\s+aand\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c fd 08 fc bc 87 23 01 00 00\s+aand\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 80 d0 7b\s+adc\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 83 d2 7b\s+adc\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 83 d1 7b\s+adc\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 83 d7 7b\s+adc\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 80 94 80 23 01 00 00 7b\s+adcb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 83 94 80 23 01 00 00 7b\s+adcw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 83 94 80 23 01 00 00 7b\s+adcl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 83 94 80 23 01 00 00 7b\s+adcq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 83 94 87 23 01 00 00 7b\s+adcw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 83 94 87 23 01 00 00 7b\s+adcl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 83 94 87 23 01 00 00 7b\s+adcq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 40 10 c2\s+adc\s+%r16b,%dl
+\s*[a-f0-9]+:\s*d5 51 10 84 87 23 01 00 00\s+adc\s+%r16b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 40 11 d0\s+adc\s+%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 50 11 94 80 23 01 00 00\s+adc\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 51 11 94 87 23 01 00 00\s+adc\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 44 11 ca\s+adc\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 55 11 8c 87 23 01 00 00\s+adc\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 4d 11 ff\s+adc\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 5d 11 bc 87 23 01 00 00\s+adc\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 50 12 84 80 23 01 00 00\s+adc\s+0x123\(%r16,%rax,4\),%r16b
+\s*[a-f0-9]+:\s*d5 5c 13 bc 80 23 01 00 00\s+adc\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 13 94 87 23 01 00 00\s+adc\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 13 8c 87 23 01 00 00\s+adc\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 13 bc 87 23 01 00 00\s+adc\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 dc 7d 08 66 d1\s+adcx\s+%r25d,%edx
+\s*[a-f0-9]+:\s*62 5c fd 08 66 ff\s+adcx\s+%r31,%r15
+\s*[a-f0-9]+:\s*62 6c fd 08 66 bc 80 23 01 00 00\s+adcx\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 4c 7d 08 66 8c 87 23 01 00 00\s+adcx\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 10 80 c0 7b\s+add\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 83 c2 7b\s+add\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 83 c1 7b\s+add\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 83 c7 7b\s+add\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 80 84 80 23 01 00 00 7b\s+addb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 83 84 80 23 01 00 00 7b\s+addw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 83 84 80 23 01 00 00 7b\s+addl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 83 84 80 23 01 00 00 7b\s+addq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 83 84 87 23 01 00 00 7b\s+addw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 83 84 87 23 01 00 00 7b\s+addl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 83 84 87 23 01 00 00 7b\s+addq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 40 00 c2\s+add\s+%r16b,%dl
+\s*[a-f0-9]+:\s*d5 51 00 84 87 23 01 00 00\s+add\s+%r16b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 40 01 d0\s+add\s+%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 50 01 94 80 23 01 00 00\s+add\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 51 01 94 87 23 01 00 00\s+add\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 44 01 ca\s+add\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 55 01 8c 87 23 01 00 00\s+add\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 4d 01 ff\s+add\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 5d 01 bc 87 23 01 00 00\s+add\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 50 02 84 80 23 01 00 00\s+add\s+0x123\(%r16,%rax,4\),%r16b
+\s*[a-f0-9]+:\s*d5 5c 03 bc 80 23 01 00 00\s+add\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 03 94 87 23 01 00 00\s+add\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 03 8c 87 23 01 00 00\s+add\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 03 bc 87 23 01 00 00\s+add\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 dc 7e 08 66 d1\s+adox\s+%r25d,%edx
+\s*[a-f0-9]+:\s*62 5c fe 08 66 ff\s+adox\s+%r31,%r15
+\s*[a-f0-9]+:\s*62 6c fe 08 66 bc 80 23 01 00 00\s+adox\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 4c 7e 08 66 8c 87 23 01 00 00\s+adox\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*62 cc 7e 08 dd b4 87 23 01 00 00\s+aesdec128kl\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 cc 7e 08 df b4 87 23 01 00 00\s+aesdec256kl\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 8c 87 23 01 00 00\s+aesdecwide128kl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 9c 87 23 01 00 00\s+aesdecwide256kl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 cc 7e 08 dc b4 87 23 01 00 00\s+aesenc128kl\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 cc 7e 08 de b4 87 23 01 00 00\s+aesenc256kl\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 84 87 23 01 00 00\s+aesencwide128kl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 dc 7e 08 d8 94 87 23 01 00 00\s+aesencwide256kl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 80 e0 7b\s+and\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 83 e2 7b\s+and\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 83 e1 7b\s+and\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 83 e7 7b\s+and\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 80 a4 80 23 01 00 00 7b\s+andb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 83 a4 80 23 01 00 00 7b\s+andw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 83 a4 80 23 01 00 00 7b\s+andl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 83 a4 80 23 01 00 00 7b\s+andq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 83 a4 87 23 01 00 00 7b\s+andw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 83 a4 87 23 01 00 00 7b\s+andl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 83 a4 87 23 01 00 00 7b\s+andq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 40 20 c2\s+and\s+%r16b,%dl
+\s*[a-f0-9]+:\s*d5 51 20 84 87 23 01 00 00\s+and\s+%r16b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 40 21 d0\s+and\s+%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 50 21 94 80 23 01 00 00\s+and\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 51 21 94 87 23 01 00 00\s+and\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 44 21 ca\s+and\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 55 21 8c 87 23 01 00 00\s+and\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 4d 21 ff\s+and\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 5d 21 bc 87 23 01 00 00\s+and\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 50 22 84 80 23 01 00 00\s+and\s+0x123\(%r16,%rax,4\),%r16b
+\s*[a-f0-9]+:\s*d5 5c 23 bc 80 23 01 00 00\s+and\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 23 94 87 23 01 00 00\s+and\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 23 8c 87 23 01 00 00\s+and\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 23 bc 87 23 01 00 00\s+and\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 5a 6c 08 f2 d1\s+andn\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 5a 84 08 f2 df\s+andn\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 da 34 00 f2 94 87 23 01 00 00\s+andn\s+0x123\(%r31,%rax,4\),%r25d,%edx
+\s*[a-f0-9]+:\s*62 5a 84 00 f2 bc 87 23 01 00 00\s+andn\s+0x123\(%r31,%rax,4\),%r31,%r15
+\s*[a-f0-9]+:\s*62 4c 7f 08 fc 8c 87 23 01 00 00\s+aor\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c ff 08 fc bc 87 23 01 00 00\s+aor\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c 7e 08 fc 8c 87 23 01 00 00\s+axor\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c fe 08 fc bc 87 23 01 00 00\s+axor\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 72 34 00 f7 d2\s+bextr\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 da 34 00 f7 94 87 23 01 00 00\s+bextr\s+%r25d,0x123\(%r31,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 52 84 00 f7 df\s+bextr\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 5a 84 00 f7 bc 87 23 01 00 00\s+bextr\s+%r31,0x123\(%r31,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 da 6c 08 f3 d9\s+blsi\s+%r25d,%edx
+\s*[a-f0-9]+:\s*62 da 84 08 f3 df\s+blsi\s+%r31,%r15
+\s*[a-f0-9]+:\s*62 da 34 00 f3 9c 87 23 01 00 00\s+blsi\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*62 da 84 00 f3 9c 87 23 01 00 00\s+blsi\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 da 6c 08 f3 d1\s+blsmsk\s+%r25d,%edx
+\s*[a-f0-9]+:\s*62 da 84 08 f3 d7\s+blsmsk\s+%r31,%r15
+\s*[a-f0-9]+:\s*62 da 34 00 f3 94 87 23 01 00 00\s+blsmsk\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*62 da 84 00 f3 94 87 23 01 00 00\s+blsmsk\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 da 6c 08 f3 c9\s+blsr\s+%r25d,%edx
+\s*[a-f0-9]+:\s*62 da 84 08 f3 cf\s+blsr\s+%r31,%r15
+\s*[a-f0-9]+:\s*62 da 34 00 f3 8c 87 23 01 00 00\s+blsr\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*62 da 84 00 f3 8c 87 23 01 00 00\s+blsr\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 72 34 00 f5 d2\s+bzhi\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 da 34 00 f5 94 87 23 01 00 00\s+bzhi\s+%r25d,0x123\(%r31,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 52 84 00 f5 df\s+bzhi\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 5a 84 00 f5 bc 87 23 01 00 00\s+bzhi\s+%r31,0x123\(%r31,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 da 35 00 e6 94 87 23 01 00 00\s+cmpbexadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e6 bc 87 23 01 00 00\s+cmpbexadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e2 94 87 23 01 00 00\s+cmpbxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e2 bc 87 23 01 00 00\s+cmpbxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 ec 94 87 23 01 00 00\s+cmplxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 ec bc 87 23 01 00 00\s+cmplxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e7 94 87 23 01 00 00\s+cmpnbexadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e7 bc 87 23 01 00 00\s+cmpnbexadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e3 94 87 23 01 00 00\s+cmpnbxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e3 bc 87 23 01 00 00\s+cmpnbxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 ef 94 87 23 01 00 00\s+cmpnlexadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 ef bc 87 23 01 00 00\s+cmpnlexadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 ed 94 87 23 01 00 00\s+cmpnlxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 ed bc 87 23 01 00 00\s+cmpnlxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e1 94 87 23 01 00 00\s+cmpnoxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e1 bc 87 23 01 00 00\s+cmpnoxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 eb 94 87 23 01 00 00\s+cmpnpxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 eb bc 87 23 01 00 00\s+cmpnpxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e9 94 87 23 01 00 00\s+cmpnsxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e9 bc 87 23 01 00 00\s+cmpnsxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e5 94 87 23 01 00 00\s+cmpnzxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e5 bc 87 23 01 00 00\s+cmpnzxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e0 94 87 23 01 00 00\s+cmpoxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e0 bc 87 23 01 00 00\s+cmpoxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 ea 94 87 23 01 00 00\s+cmppxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 ea bc 87 23 01 00 00\s+cmppxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e8 94 87 23 01 00 00\s+cmpsxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e8 bc 87 23 01 00 00\s+cmpsxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 da 35 00 e4 94 87 23 01 00 00\s+cmpzxadd\s+%r25d,%edx,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 85 00 e4 bc 87 23 01 00 00\s+cmpzxadd\s+%r31,%r15,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 fe c8\s+dec\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 ff ca\s+dec\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 ff c9\s+dec\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 ff cf\s+dec\s+%r31
+\s*[a-f0-9]+:\s*66 d5 10 ff 8c 80 23 01 00 00\s+decw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 ff 8c 80 23 01 00 00\s+decl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 ff 8c 80 23 01 00 00\s+decq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 fe 8c 87 23 01 00 00\s+decb\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 ff 8c 87 23 01 00 00\s+decw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 ff 8c 87 23 01 00 00\s+decl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 ff 8c 87 23 01 00 00\s+decq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f6 f0\s+div\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 f2\s+div\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 f7 f1\s+div\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 f7 f7\s+div\s+%r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 b4 80 23 01 00 00\s+divw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f7 b4 80 23 01 00 00\s+divl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 f7 b4 80 23 01 00 00\s+divq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f6 b4 87 23 01 00 00\s+divb\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 f7 b4 87 23 01 00 00\s+divw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f7 b4 87 23 01 00 00\s+divl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 f7 b4 87 23 01 00 00\s+divq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 dc 7e 08 da d1\s+encodekey128\s+%r25d,%edx
+\s*[a-f0-9]+:\s*62 dc 7e 08 db d1\s+encodekey256\s+%r25d,%edx
+\s*[a-f0-9]+:\s*67 62 4c 7f 08 f8 8c 87 23 01 00 00\s+enqcmd\s+0x123\(%r31d,%eax,4\),%r25d
+\s*[a-f0-9]+:\s*62 4c 7f 08 f8 bc 87 23 01 00 00\s+enqcmd\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*67 62 4c 7e 08 f8 8c 87 23 01 00 00\s+enqcmds\s+0x123\(%r31d,%eax,4\),%r25d
+\s*[a-f0-9]+:\s*62 4c 7e 08 f8 bc 87 23 01 00 00\s+enqcmds\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*d5 10 f6 f8\s+idiv\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 fa\s+idiv\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 f7 f9\s+idiv\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 f7 ff\s+idiv\s+%r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 bc 80 23 01 00 00\s+idivw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f7 bc 80 23 01 00 00\s+idivl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 f7 bc 80 23 01 00 00\s+idivq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f6 bc 87 23 01 00 00\s+idivb\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 f7 bc 87 23 01 00 00\s+idivw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f7 bc 87 23 01 00 00\s+idivl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 f7 bc 87 23 01 00 00\s+idivq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 6b c2 7b\s+imul\s+\$0x7b,%r18w,%ax
+\s*[a-f0-9]+:\s*d5 11 6b d1 7b\s+imul\s+\$0x7b,%r25d,%edx
+\s*[a-f0-9]+:\s*d5 1d 6b ff 7b\s+imul\s+\$0x7b,%r31,%r15
+\s*[a-f0-9]+:\s*d5 54 6b 8c 80 23 01 00 00 7b\s+imul\s+\$0x7b,0x123\(%r16,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5c 6b bc 80 23 01 00 00 7b\s+imul\s+\$0x7b,0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 6b 94 87 23 01 00 00 7b\s+imul\s+\$0x7b,0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 6b 8c 87 23 01 00 00 7b\s+imul\s+\$0x7b,0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 6b bc 87 23 01 00 00 7b\s+imul\s+\$0x7b,0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*d5 10 f6 e8\s+imul\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 ea\s+imul\s+%r18w
+\s*[a-f0-9]+:\s*66 d5 90 af c2\s+imul\s+%r18w,%ax
+\s*[a-f0-9]+:\s*d5 11 f7 e9\s+imul\s+%r25d
+\s*[a-f0-9]+:\s*d5 91 af d1\s+imul\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 19 f7 ef\s+imul\s+%r31
+\s*[a-f0-9]+:\s*d5 9d af ff\s+imul\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 10 f6 ac 80 23 01 00 00\s+imulb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 f7 ac 80 23 01 00 00\s+imulw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f7 ac 80 23 01 00 00\s+imull\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 d0 af 94 80 23 01 00 00\s+imul\s+0x123\(%r16,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 d4 af 8c 80 23 01 00 00\s+imul\s+0x123\(%r16,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 dc af bc 80 23 01 00 00\s+imul\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*d5 18 f7 ac 80 23 01 00 00\s+imulq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 f7 ac 87 23 01 00 00\s+imulw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f7 ac 87 23 01 00 00\s+imull\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 f7 ac 87 23 01 00 00\s+imulq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 fe c0\s+inc\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 ff c2\s+inc\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 ff c1\s+inc\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 ff c7\s+inc\s+%r31
+\s*[a-f0-9]+:\s*66 d5 10 ff 84 80 23 01 00 00\s+incw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 ff 84 80 23 01 00 00\s+incl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 ff 84 80 23 01 00 00\s+incq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 fe 84 87 23 01 00 00\s+incb\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 ff 84 87 23 01 00 00\s+incw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 ff 84 87 23 01 00 00\s+incl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 ff 84 87 23 01 00 00\s+incq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c 7e 08 f0 bc 87 23 01 00 00\s+invept\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 4c 7e 08 f2 bc 87 23 01 00 00\s+invpcid\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 4c 7e 08 f1 bc 87 23 01 00 00\s+invvpid\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*c5 f9 90 eb\s+kmovb\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 61 7d 08 93 cd\s+kmovb\s+%k5,%r25d
+\s*[a-f0-9]+:\s*62 d9 7d 08 91 ac 87 23 01 00 00\s+kmovb\s+%k5,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 d9 7d 08 92 e9\s+kmovb\s+%r25d,%k5
+\s*[a-f0-9]+:\s*62 d9 7d 08 90 ac 87 23 01 00 00\s+kmovb\s+0x123\(%r31,%rax,4\),%k5
+\s*[a-f0-9]+:\s*c4 e1 f9 90 eb\s+kmovd\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 61 7f 08 93 cd\s+kmovd\s+%k5,%r25d
+\s*[a-f0-9]+:\s*62 d9 fd 08 91 ac 87 23 01 00 00\s+kmovd\s+%k5,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 d9 7f 08 92 e9\s+kmovd\s+%r25d,%k5
+\s*[a-f0-9]+:\s*62 d9 fd 08 90 ac 87 23 01 00 00\s+kmovd\s+0x123\(%r31,%rax,4\),%k5
+\s*[a-f0-9]+:\s*c4 e1 f8 90 eb\s+kmovq\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 61 ff 08 93 fd\s+kmovq\s+%k5,%r31
+\s*[a-f0-9]+:\s*62 d9 fc 08 91 ac 87 23 01 00 00\s+kmovq\s+%k5,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 d9 ff 08 92 ef\s+kmovq\s+%r31,%k5
+\s*[a-f0-9]+:\s*62 d9 fc 08 90 ac 87 23 01 00 00\s+kmovq\s+0x123\(%r31,%rax,4\),%k5
+\s*[a-f0-9]+:\s*c5 f8 90 eb\s+kmovw\s+%k3,%k5
+\s*[a-f0-9]+:\s*62 61 7c 08 93 cd\s+kmovw\s+%k5,%r25d
+\s*[a-f0-9]+:\s*62 d9 7c 08 91 ac 87 23 01 00 00\s+kmovw\s+%k5,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 d9 7c 08 92 e9\s+kmovw\s+%r25d,%k5
+\s*[a-f0-9]+:\s*62 d9 7c 08 90 ac 87 23 01 00 00\s+kmovw\s+0x123\(%r31,%rax,4\),%k5
+\s*[a-f0-9]+:\s*62 da 7c 08 49 84 87 23 01 00 00\s+ldtilecfg\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 f3 d5 90 bd c2\s+lzcnt\s+%r18w,%ax
+\s*[a-f0-9]+:\s*f3 d5 91 bd d1\s+lzcnt\s+%r25d,%edx
+\s*[a-f0-9]+:\s*f3 d5 9d bd ff\s+lzcnt\s+%r31,%r15
+\s*[a-f0-9]+:\s*66 f3 d5 d0 bd 94 80 23 01 00 00\s+lzcnt\s+0x123\(%r16,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*f3 d5 dc bd bc 80 23 01 00 00\s+lzcnt\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 f3 d5 d1 bd 94 87 23 01 00 00\s+lzcnt\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*f3 d5 d5 bd 8c 87 23 01 00 00\s+lzcnt\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*62 fc 7d 08 60 c2\s+movbe\s+%r18w,%ax
+\s*[a-f0-9]+:\s*62 ec 7d 08 61 94 80 23 01 00 00\s+movbe\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*62 cc 7d 08 61 94 87 23 01 00 00\s+movbe\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 dc 7c 08 60 d1\s+movbe\s+%r25d,%edx
+\s*[a-f0-9]+:\s*62 6c 7c 08 61 8c 80 23 01 00 00\s+movbe\s+%r25d,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*62 5c fc 08 60 ff\s+movbe\s+%r31,%r15
+\s*[a-f0-9]+:\s*62 6c fc 08 61 bc 80 23 01 00 00\s+movbe\s+%r31,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c fc 08 61 bc 87 23 01 00 00\s+movbe\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 6c fc 08 60 bc 80 23 01 00 00\s+movbe\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 cc 7d 08 60 94 87 23 01 00 00\s+movbe\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*62 4c 7c 08 60 8c 87 23 01 00 00\s+movbe\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*67 62 4c 7d 08 f8 8c 87 23 01 00 00\s+movdir64b\s+0x123\(%r31d,%eax,4\),%r25d
+\s*[a-f0-9]+:\s*62 4c 7d 08 f8 bc 87 23 01 00 00\s+movdir64b\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 4c 7c 08 f9 8c 87 23 01 00 00\s+movdiri\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c fc 08 f9 bc 87 23 01 00 00\s+movdiri\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f6 e0\s+mul\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 e2\s+mul\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 f7 e1\s+mul\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 f7 e7\s+mul\s+%r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 a4 80 23 01 00 00\s+mulw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f7 a4 80 23 01 00 00\s+mull\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 f7 a4 80 23 01 00 00\s+mulq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f6 a4 87 23 01 00 00\s+mulb\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 f7 a4 87 23 01 00 00\s+mulw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f7 a4 87 23 01 00 00\s+mull\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 f7 a4 87 23 01 00 00\s+mulq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 5a 6f 08 f6 d1\s+mulx\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 5a 87 08 f6 df\s+mulx\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 da 37 00 f6 94 87 23 01 00 00\s+mulx\s+0x123\(%r31,%rax,4\),%r25d,%edx
+\s*[a-f0-9]+:\s*62 5a 87 00 f6 bc 87 23 01 00 00\s+mulx\s+0x123\(%r31,%rax,4\),%r31,%r15
+\s*[a-f0-9]+:\s*d5 10 f6 d8\s+neg\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 da\s+neg\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 f7 d9\s+neg\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 f7 df\s+neg\s+%r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 9c 80 23 01 00 00\s+negw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f7 9c 80 23 01 00 00\s+negl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 f7 9c 80 23 01 00 00\s+negq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f6 9c 87 23 01 00 00\s+negb\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 f7 9c 87 23 01 00 00\s+negw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f7 9c 87 23 01 00 00\s+negl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 f7 9c 87 23 01 00 00\s+negq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f6 d0\s+not\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 f7 d2\s+not\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 f7 d1\s+not\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 f7 d7\s+not\s+%r31
+\s*[a-f0-9]+:\s*66 d5 10 f7 94 80 23 01 00 00\s+notw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 f7 94 80 23 01 00 00\s+notl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 f7 94 80 23 01 00 00\s+notq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f6 94 87 23 01 00 00\s+notb\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 f7 94 87 23 01 00 00\s+notw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 f7 94 87 23 01 00 00\s+notl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 f7 94 87 23 01 00 00\s+notq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 80 c8 7b\s+or\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 83 ca 7b\s+or\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 83 c9 7b\s+or\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 83 cf 7b\s+or\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 80 8c 80 23 01 00 00 7b\s+orb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 83 8c 80 23 01 00 00 7b\s+orw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 83 8c 80 23 01 00 00 7b\s+orl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 83 8c 80 23 01 00 00 7b\s+orq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 83 8c 87 23 01 00 00 7b\s+orw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 83 8c 87 23 01 00 00 7b\s+orl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 83 8c 87 23 01 00 00 7b\s+orq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 40 08 c2\s+or\s+%r16b,%dl
+\s*[a-f0-9]+:\s*d5 51 08 84 87 23 01 00 00\s+or\s+%r16b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 40 09 d0\s+or\s+%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 50 09 94 80 23 01 00 00\s+or\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 51 09 94 87 23 01 00 00\s+or\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 44 09 ca\s+or\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 55 09 8c 87 23 01 00 00\s+or\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 4d 09 ff\s+or\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 5d 09 bc 87 23 01 00 00\s+or\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 50 0a 84 80 23 01 00 00\s+or\s+0x123\(%r16,%rax,4\),%r16b
+\s*[a-f0-9]+:\s*d5 5c 0b bc 80 23 01 00 00\s+or\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 0b 94 87 23 01 00 00\s+or\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 0b 8c 87 23 01 00 00\s+or\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 0b bc 87 23 01 00 00\s+or\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 5a 6f 08 f5 d1\s+pdep\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 5a 87 08 f5 df\s+pdep\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 da 37 00 f5 94 87 23 01 00 00\s+pdep\s+0x123\(%r31,%rax,4\),%r25d,%edx
+\s*[a-f0-9]+:\s*62 5a 87 00 f5 bc 87 23 01 00 00\s+pdep\s+0x123\(%r31,%rax,4\),%r31,%r15
+\s*[a-f0-9]+:\s*62 5a 6e 08 f5 d1\s+pext\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 5a 86 08 f5 df\s+pext\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 da 36 00 f5 94 87 23 01 00 00\s+pext\s+0x123\(%r31,%rax,4\),%r25d,%edx
+\s*[a-f0-9]+:\s*62 5a 86 00 f5 bc 87 23 01 00 00\s+pext\s+0x123\(%r31,%rax,4\),%r31,%r15
+\s*[a-f0-9]+:\s*66 f3 d5 90 b8 c2\s+popcnt\s+%r18w,%ax
+\s*[a-f0-9]+:\s*f3 d5 91 b8 d1\s+popcnt\s+%r25d,%edx
+\s*[a-f0-9]+:\s*f3 d5 9d b8 ff\s+popcnt\s+%r31,%r15
+\s*[a-f0-9]+:\s*66 f3 d5 d0 b8 94 80 23 01 00 00\s+popcnt\s+0x123\(%r16,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*f3 d5 dc b8 bc 80 23 01 00 00\s+popcnt\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 f3 d5 d1 b8 94 87 23 01 00 00\s+popcnt\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*f3 d5 d5 b8 8c 87 23 01 00 00\s+popcnt\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 10 c0 d0 7b\s+rcl\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 c1 d2 7b\s+rcl\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 c1 d1 7b\s+rcl\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 c1 d7 7b\s+rcl\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 c0 94 80 23 01 00 00 7b\s+rclb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 c1 94 80 23 01 00 00 7b\s+rclw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c1 94 80 23 01 00 00 7b\s+rcll\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 c1 94 80 23 01 00 00 7b\s+rclq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 c1 94 87 23 01 00 00 7b\s+rclw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c1 94 87 23 01 00 00 7b\s+rcll\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 c1 94 87 23 01 00 00 7b\s+rclq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d0 d0\s+rcl\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d1 d2\s+rcl\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 d1 d1\s+rcl\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 d1 d7\s+rcl\s+%r31
+\s*[a-f0-9]+:\s*d5 10 d0 94 80 23 01 00 00\s+rclb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d1 94 80 23 01 00 00\s+rclw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d1 94 80 23 01 00 00\s+rcll\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d1 94 80 23 01 00 00\s+rclq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d1 94 87 23 01 00 00\s+rclw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d1 94 87 23 01 00 00\s+rcll\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d1 94 87 23 01 00 00\s+rclq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d2 d0\s+rcl\s+%cl,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d3 d2\s+rcl\s+%cl,%r18w
+\s*[a-f0-9]+:\s*d5 11 d3 d1\s+rcl\s+%cl,%r25d
+\s*[a-f0-9]+:\s*d5 19 d3 d7\s+rcl\s+%cl,%r31
+\s*[a-f0-9]+:\s*d5 10 d2 94 80 23 01 00 00\s+rclb\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d3 94 80 23 01 00 00\s+rclw\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d3 94 80 23 01 00 00\s+rcll\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d3 94 80 23 01 00 00\s+rclq\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d3 94 87 23 01 00 00\s+rclw\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d3 94 87 23 01 00 00\s+rcll\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d3 94 87 23 01 00 00\s+rclq\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c0 d8 7b\s+rcr\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 c1 da 7b\s+rcr\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 c1 d9 7b\s+rcr\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 c1 df 7b\s+rcr\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 c0 9c 80 23 01 00 00 7b\s+rcrb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 c1 9c 80 23 01 00 00 7b\s+rcrw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c1 9c 80 23 01 00 00 7b\s+rcrl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 c1 9c 80 23 01 00 00 7b\s+rcrq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 c1 9c 87 23 01 00 00 7b\s+rcrw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c1 9c 87 23 01 00 00 7b\s+rcrl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 c1 9c 87 23 01 00 00 7b\s+rcrq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d0 d8\s+rcr\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d1 da\s+rcr\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 d1 d9\s+rcr\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 d1 df\s+rcr\s+%r31
+\s*[a-f0-9]+:\s*d5 10 d0 9c 80 23 01 00 00\s+rcrb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d1 9c 80 23 01 00 00\s+rcrw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d1 9c 80 23 01 00 00\s+rcrl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d1 9c 80 23 01 00 00\s+rcrq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d1 9c 87 23 01 00 00\s+rcrw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d1 9c 87 23 01 00 00\s+rcrl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d1 9c 87 23 01 00 00\s+rcrq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d2 d8\s+rcr\s+%cl,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d3 da\s+rcr\s+%cl,%r18w
+\s*[a-f0-9]+:\s*d5 11 d3 d9\s+rcr\s+%cl,%r25d
+\s*[a-f0-9]+:\s*d5 19 d3 df\s+rcr\s+%cl,%r31
+\s*[a-f0-9]+:\s*d5 10 d2 9c 80 23 01 00 00\s+rcrb\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d3 9c 80 23 01 00 00\s+rcrw\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d3 9c 80 23 01 00 00\s+rcrl\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d3 9c 80 23 01 00 00\s+rcrq\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d3 9c 87 23 01 00 00\s+rcrw\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d3 9c 87 23 01 00 00\s+rcrl\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d3 9c 87 23 01 00 00\s+rcrq\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c0 c0 7b\s+rol\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 c1 c2 7b\s+rol\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 c1 c1 7b\s+rol\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 c1 c7 7b\s+rol\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 c0 84 80 23 01 00 00 7b\s+rolb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 c1 84 80 23 01 00 00 7b\s+rolw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c1 84 80 23 01 00 00 7b\s+roll\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 c1 84 80 23 01 00 00 7b\s+rolq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 c1 84 87 23 01 00 00 7b\s+rolw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c1 84 87 23 01 00 00 7b\s+roll\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 c1 84 87 23 01 00 00 7b\s+rolq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d0 c0\s+rol\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d1 c2\s+rol\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 d1 c1\s+rol\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 d1 c7\s+rol\s+%r31
+\s*[a-f0-9]+:\s*d5 10 d0 84 80 23 01 00 00\s+rolb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d1 84 80 23 01 00 00\s+rolw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d1 84 80 23 01 00 00\s+roll\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d1 84 80 23 01 00 00\s+rolq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d1 84 87 23 01 00 00\s+rolw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d1 84 87 23 01 00 00\s+roll\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d1 84 87 23 01 00 00\s+rolq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d2 c0\s+rol\s+%cl,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d3 c2\s+rol\s+%cl,%r18w
+\s*[a-f0-9]+:\s*d5 11 d3 c1\s+rol\s+%cl,%r25d
+\s*[a-f0-9]+:\s*d5 19 d3 c7\s+rol\s+%cl,%r31
+\s*[a-f0-9]+:\s*d5 10 d2 84 80 23 01 00 00\s+rolb\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d3 84 80 23 01 00 00\s+rolw\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d3 84 80 23 01 00 00\s+roll\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d3 84 80 23 01 00 00\s+rolq\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d3 84 87 23 01 00 00\s+rolw\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d3 84 87 23 01 00 00\s+roll\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d3 84 87 23 01 00 00\s+rolq\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c0 c8 7b\s+ror\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 c1 ca 7b\s+ror\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 c1 c9 7b\s+ror\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 c1 cf 7b\s+ror\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 c0 8c 80 23 01 00 00 7b\s+rorb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 c1 8c 80 23 01 00 00 7b\s+rorw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c1 8c 80 23 01 00 00 7b\s+rorl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 c1 8c 80 23 01 00 00 7b\s+rorq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 c1 8c 87 23 01 00 00 7b\s+rorw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c1 8c 87 23 01 00 00 7b\s+rorl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 c1 8c 87 23 01 00 00 7b\s+rorq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d0 c8\s+ror\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d1 ca\s+ror\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 d1 c9\s+ror\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 d1 cf\s+ror\s+%r31
+\s*[a-f0-9]+:\s*d5 10 d0 8c 80 23 01 00 00\s+rorb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d1 8c 80 23 01 00 00\s+rorw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d1 8c 80 23 01 00 00\s+rorl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d1 8c 80 23 01 00 00\s+rorq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d1 8c 87 23 01 00 00\s+rorw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d1 8c 87 23 01 00 00\s+rorl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d1 8c 87 23 01 00 00\s+rorq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d2 c8\s+ror\s+%cl,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d3 ca\s+ror\s+%cl,%r18w
+\s*[a-f0-9]+:\s*d5 11 d3 c9\s+ror\s+%cl,%r25d
+\s*[a-f0-9]+:\s*d5 19 d3 cf\s+ror\s+%cl,%r31
+\s*[a-f0-9]+:\s*d5 10 d2 8c 80 23 01 00 00\s+rorb\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d3 8c 80 23 01 00 00\s+rorw\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d3 8c 80 23 01 00 00\s+rorl\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d3 8c 80 23 01 00 00\s+rorq\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d3 8c 87 23 01 00 00\s+rorw\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d3 8c 87 23 01 00 00\s+rorl\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d3 8c 87 23 01 00 00\s+rorq\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 db 7f 08 f0 d1 7b\s+rorx\s+\$0x7b,%r25d,%edx
+\s*[a-f0-9]+:\s*62 5b ff 08 f0 ff 7b\s+rorx\s+\$0x7b,%r31,%r15
+\s*[a-f0-9]+:\s*62 4b 7f 08 f0 8c 87 23 01 00 00 7b\s+rorx\s+\$0x7b,0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*62 4b ff 08 f0 bc 87 23 01 00 00 7b\s+rorx\s+\$0x7b,0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*d5 10 c0 f8 7b\s+sar\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 c1 fa 7b\s+sar\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 c1 f9 7b\s+sar\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 c1 ff 7b\s+sar\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 c0 bc 80 23 01 00 00 7b\s+sarb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 c1 bc 80 23 01 00 00 7b\s+sarw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c1 bc 80 23 01 00 00 7b\s+sarl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 c1 bc 80 23 01 00 00 7b\s+sarq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 c1 bc 87 23 01 00 00 7b\s+sarw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c1 bc 87 23 01 00 00 7b\s+sarl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 c1 bc 87 23 01 00 00 7b\s+sarq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d0 f8\s+sar\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d1 fa\s+sar\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 d1 f9\s+sar\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 d1 ff\s+sar\s+%r31
+\s*[a-f0-9]+:\s*d5 10 d0 bc 80 23 01 00 00\s+sarb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d1 bc 80 23 01 00 00\s+sarw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d1 bc 80 23 01 00 00\s+sarl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d1 bc 80 23 01 00 00\s+sarq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d1 bc 87 23 01 00 00\s+sarw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d1 bc 87 23 01 00 00\s+sarl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d1 bc 87 23 01 00 00\s+sarq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d2 f8\s+sar\s+%cl,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d3 fa\s+sar\s+%cl,%r18w
+\s*[a-f0-9]+:\s*d5 11 d3 f9\s+sar\s+%cl,%r25d
+\s*[a-f0-9]+:\s*d5 19 d3 ff\s+sar\s+%cl,%r31
+\s*[a-f0-9]+:\s*d5 10 d2 bc 80 23 01 00 00\s+sarb\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d3 bc 80 23 01 00 00\s+sarw\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d3 bc 80 23 01 00 00\s+sarl\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d3 bc 80 23 01 00 00\s+sarq\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d3 bc 87 23 01 00 00\s+sarw\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d3 bc 87 23 01 00 00\s+sarl\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d3 bc 87 23 01 00 00\s+sarq\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 72 36 00 f7 d2\s+sarx\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 da 36 00 f7 94 87 23 01 00 00\s+sarx\s+%r25d,0x123\(%r31,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 52 86 00 f7 df\s+sarx\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 5a 86 00 f7 bc 87 23 01 00 00\s+sarx\s+%r31,0x123\(%r31,%rax,4\),%r15
+\s*[a-f0-9]+:\s*d5 10 80 d8 7b\s+sbb\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 83 da 7b\s+sbb\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 83 d9 7b\s+sbb\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 83 df 7b\s+sbb\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 80 9c 80 23 01 00 00 7b\s+sbbb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 83 9c 80 23 01 00 00 7b\s+sbbw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 83 9c 80 23 01 00 00 7b\s+sbbl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 83 9c 80 23 01 00 00 7b\s+sbbq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 83 9c 87 23 01 00 00 7b\s+sbbw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 83 9c 87 23 01 00 00 7b\s+sbbl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 83 9c 87 23 01 00 00 7b\s+sbbq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 40 18 c2\s+sbb\s+%r16b,%dl
+\s*[a-f0-9]+:\s*d5 51 18 84 87 23 01 00 00\s+sbb\s+%r16b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 40 19 d0\s+sbb\s+%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 50 19 94 80 23 01 00 00\s+sbb\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 51 19 94 87 23 01 00 00\s+sbb\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 44 19 ca\s+sbb\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 55 19 8c 87 23 01 00 00\s+sbb\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 4d 19 ff\s+sbb\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 5d 19 bc 87 23 01 00 00\s+sbb\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 50 1a 84 80 23 01 00 00\s+sbb\s+0x123\(%r16,%rax,4\),%r16b
+\s*[a-f0-9]+:\s*d5 5c 1b bc 80 23 01 00 00\s+sbb\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 1b 94 87 23 01 00 00\s+sbb\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 1b 8c 87 23 01 00 00\s+sbb\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 1b bc 87 23 01 00 00\s+sbb\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 a4 7c 08 d9 f7\s+sha1msg1\s+%xmm23,%xmm22
+\s*[a-f0-9]+:\s*62 cc 7c 08 d9 b4 87 23 01 00 00\s+sha1msg1\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 a4 7c 08 da f7\s+sha1msg2\s+%xmm23,%xmm22
+\s*[a-f0-9]+:\s*62 cc 7c 08 da b4 87 23 01 00 00\s+sha1msg2\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 a4 7c 08 d8 f7\s+sha1nexte\s+%xmm23,%xmm22
+\s*[a-f0-9]+:\s*62 cc 7c 08 d8 b4 87 23 01 00 00\s+sha1nexte\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 a4 7c 08 d4 f7 7b\s+sha1rnds4\s+\$0x7b,%xmm23,%xmm22
+\s*[a-f0-9]+:\s*62 cc 7c 08 d4 b4 87 23 01 00 00 7b\s+sha1rnds4\s+\$0x7b,0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 a4 7c 08 dc f7\s+sha256msg1\s+%xmm23,%xmm22
+\s*[a-f0-9]+:\s*62 cc 7c 08 dc b4 87 23 01 00 00\s+sha256msg1\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 a4 7c 08 dd f7\s+sha256msg2\s+%xmm23,%xmm22
+\s*[a-f0-9]+:\s*62 cc 7c 08 dd b4 87 23 01 00 00\s+sha256msg2\s+0x123\(%r31,%rax,4\),%xmm22
+\s*[a-f0-9]+:\s*62 5c 7c 08 db a4 87 23 01 00 00\s+sha256rnds2\s+%xmm0,0x123\(%r31,%rax,4\),%xmm12
+\s*[a-f0-9]+:\s*d5 10 c0 e0 7b\s+shl\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 c1 e2 7b\s+shl\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 c1 e1 7b\s+shl\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 c1 e7 7b\s+shl\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 c0 a4 80 23 01 00 00 7b\s+shlb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 c1 a4 80 23 01 00 00 7b\s+shlw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c1 a4 80 23 01 00 00 7b\s+shll\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 c1 a4 80 23 01 00 00 7b\s+shlq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c0 a4 87 23 01 00 00 7b\s+shlb\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 c1 a4 87 23 01 00 00 7b\s+shlw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c1 a4 87 23 01 00 00 7b\s+shll\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 c1 a4 87 23 01 00 00 7b\s+shlq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d0 e0\s+shl\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d1 e2\s+shl\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 d1 e1\s+shl\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 d1 e7\s+shl\s+%r31
+\s*[a-f0-9]+:\s*d5 10 d0 a4 80 23 01 00 00\s+shlb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d1 a4 80 23 01 00 00\s+shlw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d1 a4 80 23 01 00 00\s+shll\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d1 a4 80 23 01 00 00\s+shlq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d1 a4 87 23 01 00 00\s+shlw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d1 a4 87 23 01 00 00\s+shll\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d1 a4 87 23 01 00 00\s+shlq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d2 e0\s+shl\s+%cl,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d3 e2\s+shl\s+%cl,%r18w
+\s*[a-f0-9]+:\s*d5 11 d3 e1\s+shl\s+%cl,%r25d
+\s*[a-f0-9]+:\s*d5 19 d3 e7\s+shl\s+%cl,%r31
+\s*[a-f0-9]+:\s*d5 10 d2 a4 80 23 01 00 00\s+shlb\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d3 a4 80 23 01 00 00\s+shlw\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d3 a4 80 23 01 00 00\s+shll\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d3 a4 80 23 01 00 00\s+shlq\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d2 a4 87 23 01 00 00\s+shlb\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d3 a4 87 23 01 00 00\s+shlw\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d3 a4 87 23 01 00 00\s+shll\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d3 a4 87 23 01 00 00\s+shlq\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 c0 a4 d0 7b\s+shld\s+\$0x7b,%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 d1 a4 94 87 23 01 00 00 7b\s+shld\s+\$0x7b,%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 c4 a4 ca 7b\s+shld\s+\$0x7b,%r25d,%edx
+\s*[a-f0-9]+:\s*d5 d5 a4 8c 87 23 01 00 00 7b\s+shld\s+\$0x7b,%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 cd a4 ff 7b\s+shld\s+\$0x7b,%r31,%r15
+\s*[a-f0-9]+:\s*d5 dc a4 bc 80 23 01 00 00 7b\s+shld\s+\$0x7b,%r31,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 c0 a5 d0\s+shld\s+%cl,%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 d0 a5 94 80 23 01 00 00\s+shld\s+%cl,%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 c4 a5 ca\s+shld\s+%cl,%r25d,%edx
+\s*[a-f0-9]+:\s*d5 d4 a5 8c 80 23 01 00 00\s+shld\s+%cl,%r25d,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 d5 a5 8c 87 23 01 00 00\s+shld\s+%cl,%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 cd a5 ff\s+shld\s+%cl,%r31,%r15
+\s*[a-f0-9]+:\s*d5 dd a5 bc 87 23 01 00 00\s+shld\s+%cl,%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 72 35 00 f7 d2\s+shlx\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 da 35 00 f7 94 87 23 01 00 00\s+shlx\s+%r25d,0x123\(%r31,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 52 85 00 f7 df\s+shlx\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 5a 85 00 f7 bc 87 23 01 00 00\s+shlx\s+%r31,0x123\(%r31,%rax,4\),%r15
+\s*[a-f0-9]+:\s*d5 10 c0 e8 7b\s+shr\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 c1 ea 7b\s+shr\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 c1 e9 7b\s+shr\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 c1 ef 7b\s+shr\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 c0 ac 80 23 01 00 00 7b\s+shrb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 c1 ac 80 23 01 00 00 7b\s+shrw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 c1 ac 80 23 01 00 00 7b\s+shrl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 c1 ac 80 23 01 00 00 7b\s+shrq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 c1 ac 87 23 01 00 00 7b\s+shrw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 c1 ac 87 23 01 00 00 7b\s+shrl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 c1 ac 87 23 01 00 00 7b\s+shrq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d0 e8\s+shr\s+%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d1 ea\s+shr\s+%r18w
+\s*[a-f0-9]+:\s*d5 11 d1 e9\s+shr\s+%r25d
+\s*[a-f0-9]+:\s*d5 19 d1 ef\s+shr\s+%r31
+\s*[a-f0-9]+:\s*d5 10 d0 ac 80 23 01 00 00\s+shrb\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d1 ac 80 23 01 00 00\s+shrw\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d1 ac 80 23 01 00 00\s+shrl\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d1 ac 80 23 01 00 00\s+shrq\s+0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d1 ac 87 23 01 00 00\s+shrw\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d1 ac 87 23 01 00 00\s+shrl\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d1 ac 87 23 01 00 00\s+shrq\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d2 e8\s+shr\s+%cl,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 d3 ea\s+shr\s+%cl,%r18w
+\s*[a-f0-9]+:\s*d5 11 d3 e9\s+shr\s+%cl,%r25d
+\s*[a-f0-9]+:\s*d5 19 d3 ef\s+shr\s+%cl,%r31
+\s*[a-f0-9]+:\s*d5 10 d2 ac 80 23 01 00 00\s+shrb\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 d3 ac 80 23 01 00 00\s+shrw\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 d3 ac 80 23 01 00 00\s+shrl\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 d3 ac 80 23 01 00 00\s+shrq\s+%cl,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 d3 ac 87 23 01 00 00\s+shrw\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 d3 ac 87 23 01 00 00\s+shrl\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 d3 ac 87 23 01 00 00\s+shrq\s+%cl,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 c0 ac d0 7b\s+shrd\s+\$0x7b,%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 d1 ac 94 87 23 01 00 00 7b\s+shrd\s+\$0x7b,%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 c4 ac ca 7b\s+shrd\s+\$0x7b,%r25d,%edx
+\s*[a-f0-9]+:\s*d5 d5 ac 8c 87 23 01 00 00 7b\s+shrd\s+\$0x7b,%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 cd ac ff 7b\s+shrd\s+\$0x7b,%r31,%r15
+\s*[a-f0-9]+:\s*d5 dc ac bc 80 23 01 00 00 7b\s+shrd\s+\$0x7b,%r31,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 c0 ad d0\s+shrd\s+%cl,%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 d0 ad 94 80 23 01 00 00\s+shrd\s+%cl,%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 c4 ad ca\s+shrd\s+%cl,%r25d,%edx
+\s*[a-f0-9]+:\s*d5 d4 ad 8c 80 23 01 00 00\s+shrd\s+%cl,%r25d,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 d5 ad 8c 87 23 01 00 00\s+shrd\s+%cl,%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 cd ad ff\s+shrd\s+%cl,%r31,%r15
+\s*[a-f0-9]+:\s*d5 dd ad bc 87 23 01 00 00\s+shrd\s+%cl,%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 72 37 00 f7 d2\s+shrx\s+%r25d,%edx,%r10d
+\s*[a-f0-9]+:\s*62 da 37 00 f7 94 87 23 01 00 00\s+shrx\s+%r25d,0x123\(%r31,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 52 87 00 f7 df\s+shrx\s+%r31,%r15,%r11
+\s*[a-f0-9]+:\s*62 5a 87 00 f7 bc 87 23 01 00 00\s+shrx\s+%r31,0x123\(%r31,%rax,4\),%r15
+\s*[a-f0-9]+:\s*62 da 7d 08 49 84 87 23 01 00 00\s+sttilecfg\s+0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 80 e8 7b\s+sub\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 83 ea 7b\s+sub\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 83 e9 7b\s+sub\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 83 ef 7b\s+sub\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 80 ac 80 23 01 00 00 7b\s+subb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 83 ac 80 23 01 00 00 7b\s+subw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 83 ac 80 23 01 00 00 7b\s+subl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 83 ac 80 23 01 00 00 7b\s+subq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 83 ac 87 23 01 00 00 7b\s+subw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 83 ac 87 23 01 00 00 7b\s+subl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 83 ac 87 23 01 00 00 7b\s+subq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 40 28 c2\s+sub\s+%r16b,%dl
+\s*[a-f0-9]+:\s*d5 51 28 84 87 23 01 00 00\s+sub\s+%r16b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 40 29 d0\s+sub\s+%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 50 29 94 80 23 01 00 00\s+sub\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 51 29 94 87 23 01 00 00\s+sub\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 44 29 ca\s+sub\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 55 29 8c 87 23 01 00 00\s+sub\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 4d 29 ff\s+sub\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 5d 29 bc 87 23 01 00 00\s+sub\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 50 2a 84 80 23 01 00 00\s+sub\s+0x123\(%r16,%rax,4\),%r16b
+\s*[a-f0-9]+:\s*d5 5c 2b bc 80 23 01 00 00\s+sub\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 2b 94 87 23 01 00 00\s+sub\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 2b 8c 87 23 01 00 00\s+sub\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 2b bc 87 23 01 00 00\s+sub\s+0x123\(%r31,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 da 7f 08 4b b4 87 23 01 00 00\s+tileloadd\s+0x123\(%r31,%rax,4\),%tmm6
+\s*[a-f0-9]+:\s*62 da 7d 08 4b b4 87 23 01 00 00\s+tileloaddt1\s+0x123\(%r31,%rax,4\),%tmm6
+\s*[a-f0-9]+:\s*62 da 7e 08 4b b4 87 23 01 00 00\s+tilestored\s+%tmm6,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 f3 d5 90 bc c2\s+tzcnt\s+%r18w,%ax
+\s*[a-f0-9]+:\s*f3 d5 91 bc d1\s+tzcnt\s+%r25d,%edx
+\s*[a-f0-9]+:\s*f3 d5 9d bc ff\s+tzcnt\s+%r31,%r15
+\s*[a-f0-9]+:\s*66 f3 d5 d0 bc 94 80 23 01 00 00\s+tzcnt\s+0x123\(%r16,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*f3 d5 dc bc bc 80 23 01 00 00\s+tzcnt\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 f3 d5 d1 bc 94 87 23 01 00 00\s+tzcnt\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*f3 d5 d5 bc 8c 87 23 01 00 00\s+tzcnt\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*62 4c 7c 08 66 8c 87 23 01 00 00\s+wrssd\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c fc 08 66 bc 87 23 01 00 00\s+wrssq\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c 7d 08 65 8c 87 23 01 00 00\s+wrussd\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*62 4c fd 08 65 bc 87 23 01 00 00\s+wrussq\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 80 f0 7b\s+xor\s+\$0x7b,%r16b
+\s*[a-f0-9]+:\s*66 d5 10 83 f2 7b\s+xor\s+\$0x7b,%r18w
+\s*[a-f0-9]+:\s*d5 11 83 f1 7b\s+xor\s+\$0x7b,%r25d
+\s*[a-f0-9]+:\s*d5 19 83 f7 7b\s+xor\s+\$0x7b,%r31
+\s*[a-f0-9]+:\s*d5 10 80 b4 80 23 01 00 00 7b\s+xorb\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 10 83 b4 80 23 01 00 00 7b\s+xorw\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 10 83 b4 80 23 01 00 00 7b\s+xorl\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*d5 18 83 b4 80 23 01 00 00 7b\s+xorq\s+\$0x7b,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 11 83 b4 87 23 01 00 00 7b\s+xorw\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 11 83 b4 87 23 01 00 00 7b\s+xorl\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 19 83 b4 87 23 01 00 00 7b\s+xorq\s+\$0x7b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 40 30 c2\s+xor\s+%r16b,%dl
+\s*[a-f0-9]+:\s*d5 51 30 84 87 23 01 00 00\s+xor\s+%r16b,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 40 31 d0\s+xor\s+%r18w,%ax
+\s*[a-f0-9]+:\s*66 d5 50 31 94 80 23 01 00 00\s+xor\s+%r18w,0x123\(%r16,%rax,4\)
+\s*[a-f0-9]+:\s*66 d5 51 31 94 87 23 01 00 00\s+xor\s+%r18w,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 44 31 ca\s+xor\s+%r25d,%edx
+\s*[a-f0-9]+:\s*d5 55 31 8c 87 23 01 00 00\s+xor\s+%r25d,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 4d 31 ff\s+xor\s+%r31,%r15
+\s*[a-f0-9]+:\s*d5 5d 31 bc 87 23 01 00 00\s+xor\s+%r31,0x123\(%r31,%rax,4\)
+\s*[a-f0-9]+:\s*d5 50 32 84 80 23 01 00 00\s+xor\s+0x123\(%r16,%rax,4\),%r16b
+\s*[a-f0-9]+:\s*d5 5c 33 bc 80 23 01 00 00\s+xor\s+0x123\(%r16,%rax,4\),%r31
+\s*[a-f0-9]+:\s*66 d5 51 33 94 87 23 01 00 00\s+xor\s+0x123\(%r31,%rax,4\),%r18w
+\s*[a-f0-9]+:\s*d5 55 33 8c 87 23 01 00 00\s+xor\s+0x123\(%r31,%rax,4\),%r25d
+\s*[a-f0-9]+:\s*d5 5d 33 bc 87 23 01 00 00\s+xor\s+0x123\(%r31,%rax,4\),%r31
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
new file mode 100644
index 00000000000..9a17c18e363
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
@@ -0,0 +1,1464 @@
+# Check 64bit APX_F EVEX-Promoted instructions.
+
+	.text
+_start:
+	aadd	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	aadd	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	aand	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	aand	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adc	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	adc	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	adc	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	adc	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	adcb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adcw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adcl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adcq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adcw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adcl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adcq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adc	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
+	adc	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adc	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	adc	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adc	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adc	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	adc	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adc	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	adc	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	adc	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
+	adc	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	adc	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	adc	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	adc	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	adcx	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	adcx	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	adcx	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	adcx	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	add	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	add	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	add	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	add	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	addb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	addw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	addl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	addq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	addw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	addl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	addq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	add	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
+	add	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	add	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	add	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	add	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	add	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	add	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	add	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	add	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	add	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
+	add	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	add	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	add	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	add	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	adox	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	adox	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	adox	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	adox	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	aesdec128kl	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	aesdec256kl	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	aesdecwide128kl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	aesdecwide256kl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	aesenc128kl	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	aesenc256kl	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	aesencwide128kl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	aesencwide256kl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	and	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	and	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	and	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	and	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	andb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	andw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	andl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	andq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	andw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	andl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	andq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	and	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
+	and	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	and	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	and	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	and	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	and	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	and	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	and	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	and	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	and	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
+	and	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	and	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	and	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	and	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	andn	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	andn	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	andn	0x123(%r31,%rax,4),%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	andn	0x123(%r31,%rax,4),%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	aor	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	aor	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	axor	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	axor	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	bextr	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	bextr	%r25d,0x123(%r31,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	bextr	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	bextr	%r31,0x123(%r31,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	blsi	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	blsi	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	blsi	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	blsi	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	blsmsk	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	blsmsk	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	blsmsk	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	blsmsk	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	blsr	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	blsr	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	blsr	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	blsr	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	bzhi	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	bzhi	%r25d,0x123(%r31,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	bzhi	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	bzhi	%r31,0x123(%r31,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	cmpbexadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpbexadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpbxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpbxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmplxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmplxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnbexadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnbexadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnbxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnbxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnlexadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnlexadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnlxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnlxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnoxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnoxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnpxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnpxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnsxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnsxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnzxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpnzxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpoxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpoxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmppxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmppxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpsxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpsxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpzxadd	%r25d,%edx,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	cmpzxadd	%r31,%r15,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	dec	%r16b	 #APX_F OPC_EVEX_EVEX
+	dec	%r18w	 #APX_F OPC_EVEX_EVEX
+	dec	%r25d	 #APX_F OPC_EVEX_EVEX
+	dec	%r31	 #APX_F OPC_EVEX_EVEX
+	decw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	decl	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	decq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	decb	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	decw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	decl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	decq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	div	%r16b	 #APX_F OPC_EVEX_EVEX
+	div	%r18w	 #APX_F OPC_EVEX_EVEX
+	div	%r25d	 #APX_F OPC_EVEX_EVEX
+	div	%r31	 #APX_F OPC_EVEX_EVEX
+	divw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	divl	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	divq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	divb	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	divw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	divl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	divq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	encodekey128	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	encodekey256	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	enqcmd	0x123(%r31d,%eax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	enqcmd	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	enqcmds	0x123(%r31d,%eax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	enqcmds	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	idiv	%r16b	 #APX_F OPC_EVEX_EVEX
+	idiv	%r18w	 #APX_F OPC_EVEX_EVEX
+	idiv	%r25d	 #APX_F OPC_EVEX_EVEX
+	idiv	%r31	 #APX_F OPC_EVEX_EVEX
+	idivw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	idivl	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	idivq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	idivb	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	idivw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	idivl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	idivq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	imul	$0x7b,%r18w,%ax	 #APX_F
+	imul	$0x7b,%r25d,%edx	 #APX_F
+	imul	$0x7b,%r31,%r15	 #APX_F
+	imul	$0x7b,0x123(%r16,%rax,4),%r25d	 #APX_F
+	imul	$0x7b,0x123(%r16,%rax,4),%r31	 #APX_F
+	imul	$0x7b,0x123(%r31,%rax,4),%r18w	 #APX_F
+	imul	$0x7b,0x123(%r31,%rax,4),%r25d	 #APX_F
+	imul	$0x7b,0x123(%r31,%rax,4),%r31	 #APX_F
+	imul	%r16b	 #APX_F OPC_EVEX_EVEX
+	imul	%r18w	 #APX_F OPC_EVEX_EVEX
+	imul	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	imul	%r25d	 #APX_F OPC_EVEX_EVEX
+	imul	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	imul	%r31	 #APX_F OPC_EVEX_EVEX
+	imul	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	imulb	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	imulw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	imull	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	imul	0x123(%r16,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	imul	0x123(%r16,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	imul	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	imulq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	imulw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	imull	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	imulq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	inc	%r16b	 #APX_F OPC_EVEX_EVEX
+	inc	%r18w	 #APX_F OPC_EVEX_EVEX
+	inc	%r25d	 #APX_F OPC_EVEX_EVEX
+	inc	%r31	 #APX_F OPC_EVEX_EVEX
+	incw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	incl	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	incq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	incb	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	incw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	incl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	incq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	invept	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	invpcid	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	invvpid	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	kmovb	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovb	%k5,%r25d	 #APX_F OPC_EVEX_EVEX
+	kmovb	%k5,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	kmovb	%r25d,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovb	0x123(%r31,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	kmovd	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovd	%k5,%r25d	 #APX_F OPC_EVEX_EVEX
+	kmovd	%k5,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	kmovd	%r25d,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovd	0x123(%r31,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	kmovq	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovq	%k5,%r31	 #APX_F OPC_EVEX_EVEX
+	kmovq	%k5,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	kmovq	%r31,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovq	0x123(%r31,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	kmovw	%k3,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovw	%k5,%r25d	 #APX_F OPC_EVEX_EVEX
+	kmovw	%k5,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	kmovw	%r25d,%k5	 #APX_F OPC_EVEX_EVEX
+	kmovw	0x123(%r31,%rax,4),%k5	 #APX_F OPC_EVEX_EVEX
+	ldtilecfg	0x123(%r31,%rax,4)	 #APX_F
+	lzcnt	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	lzcnt	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	lzcnt	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	lzcnt	0x123(%r16,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	lzcnt	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	lzcnt	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	lzcnt	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	movbe	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	movbe	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	movbe	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	movbe	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	movbe	%r25d,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	movbe	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	movbe	%r31,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	movbe	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	movbe	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	movbe	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	movbe	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	movdir64b	0x123(%r31d,%eax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	movdir64b	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	movdiri	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	movdiri	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mul	%r16b	 #APX_F OPC_EVEX_EVEX
+	mul	%r18w	 #APX_F OPC_EVEX_EVEX
+	mul	%r25d	 #APX_F OPC_EVEX_EVEX
+	mul	%r31	 #APX_F OPC_EVEX_EVEX
+	mulw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mull	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mulq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mulb	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mulw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mull	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mulq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	mulx	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	mulx	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	mulx	0x123(%r31,%rax,4),%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	mulx	0x123(%r31,%rax,4),%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	neg	%r16b	 #APX_F OPC_EVEX_EVEX
+	neg	%r18w	 #APX_F OPC_EVEX_EVEX
+	neg	%r25d	 #APX_F OPC_EVEX_EVEX
+	neg	%r31	 #APX_F OPC_EVEX_EVEX
+	negw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	negl	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	negq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	negb	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	negw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	negl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	negq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	not	%r16b	 #APX_F OPC_EVEX_EVEX
+	not	%r18w	 #APX_F OPC_EVEX_EVEX
+	not	%r25d	 #APX_F OPC_EVEX_EVEX
+	not	%r31	 #APX_F OPC_EVEX_EVEX
+	notw	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	notl	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	notq	0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	notb	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	notw	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	notl	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	notq	0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	or	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	or	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	or	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	or	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	orb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	orw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	orl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	orq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	orw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	orl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	orq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	or	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
+	or	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	or	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	or	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	or	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	or	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	or	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	or	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	or	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	or	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
+	or	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	or	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	or	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	or	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	pdep	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	pdep	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	pdep	0x123(%r31,%rax,4),%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	pdep	0x123(%r31,%rax,4),%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	pext	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	pext	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	pext	0x123(%r31,%rax,4),%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	pext	0x123(%r31,%rax,4),%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	popcnt	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	popcnt	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	popcnt	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	popcnt	0x123(%r16,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	popcnt	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	popcnt	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	popcnt	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	rcl	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	rcl	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	rcl	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	rcl	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	rclb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcll	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcll	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcl	$1,%r16b	 #APX_F OPC_EVEX_EVEX
+	rcl	$1,%r18w	 #APX_F OPC_EVEX_EVEX
+	rcl	$1,%r25d	 #APX_F OPC_EVEX_EVEX
+	rcl	$1,%r31	 #APX_F OPC_EVEX_EVEX
+	rclb	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclw	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcll	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclq	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclw	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcll	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclq	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcl	%cl,%r16b	 #APX_F OPC_EVEX_EVEX
+	rcl	%cl,%r18w	 #APX_F OPC_EVEX_EVEX
+	rcl	%cl,%r25d	 #APX_F OPC_EVEX_EVEX
+	rcl	%cl,%r31	 #APX_F OPC_EVEX_EVEX
+	rclb	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclw	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcll	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclq	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclw	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcll	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rclq	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcr	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	rcr	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	rcr	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	rcr	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	rcrb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcr	$1,%r16b	 #APX_F OPC_EVEX_EVEX
+	rcr	$1,%r18w	 #APX_F OPC_EVEX_EVEX
+	rcr	$1,%r25d	 #APX_F OPC_EVEX_EVEX
+	rcr	$1,%r31	 #APX_F OPC_EVEX_EVEX
+	rcrb	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrw	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrl	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrq	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrw	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrl	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrq	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcr	%cl,%r16b	 #APX_F OPC_EVEX_EVEX
+	rcr	%cl,%r18w	 #APX_F OPC_EVEX_EVEX
+	rcr	%cl,%r25d	 #APX_F OPC_EVEX_EVEX
+	rcr	%cl,%r31	 #APX_F OPC_EVEX_EVEX
+	rcrb	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrw	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrl	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrq	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrw	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrl	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rcrq	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rol	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	rol	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	rol	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	rol	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	rolb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	roll	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	roll	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rol	$1,%r16b	 #APX_F OPC_EVEX_EVEX
+	rol	$1,%r18w	 #APX_F OPC_EVEX_EVEX
+	rol	$1,%r25d	 #APX_F OPC_EVEX_EVEX
+	rol	$1,%r31	 #APX_F OPC_EVEX_EVEX
+	rolb	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolw	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	roll	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolq	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolw	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	roll	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolq	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rol	%cl,%r16b	 #APX_F OPC_EVEX_EVEX
+	rol	%cl,%r18w	 #APX_F OPC_EVEX_EVEX
+	rol	%cl,%r25d	 #APX_F OPC_EVEX_EVEX
+	rol	%cl,%r31	 #APX_F OPC_EVEX_EVEX
+	rolb	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolw	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	roll	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolq	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolw	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	roll	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rolq	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	ror	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	ror	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	ror	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	ror	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	rorb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	ror	$1,%r16b	 #APX_F OPC_EVEX_EVEX
+	ror	$1,%r18w	 #APX_F OPC_EVEX_EVEX
+	ror	$1,%r25d	 #APX_F OPC_EVEX_EVEX
+	ror	$1,%r31	 #APX_F OPC_EVEX_EVEX
+	rorb	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorw	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorl	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorq	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorw	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorl	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorq	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	ror	%cl,%r16b	 #APX_F OPC_EVEX_EVEX
+	ror	%cl,%r18w	 #APX_F OPC_EVEX_EVEX
+	ror	%cl,%r25d	 #APX_F OPC_EVEX_EVEX
+	ror	%cl,%r31	 #APX_F OPC_EVEX_EVEX
+	rorb	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorw	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorl	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorq	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorw	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorl	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorq	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	rorx	$0x7b,%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	rorx	$0x7b,%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	rorx	$0x7b,0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	rorx	$0x7b,0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	sar	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	sar	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	sar	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	sar	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	sarb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sar	$1,%r16b	 #APX_F OPC_EVEX_EVEX
+	sar	$1,%r18w	 #APX_F OPC_EVEX_EVEX
+	sar	$1,%r25d	 #APX_F OPC_EVEX_EVEX
+	sar	$1,%r31	 #APX_F OPC_EVEX_EVEX
+	sarb	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarw	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarl	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarq	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarw	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarl	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarq	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sar	%cl,%r16b	 #APX_F OPC_EVEX_EVEX
+	sar	%cl,%r18w	 #APX_F OPC_EVEX_EVEX
+	sar	%cl,%r25d	 #APX_F OPC_EVEX_EVEX
+	sar	%cl,%r31	 #APX_F OPC_EVEX_EVEX
+	sarb	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarw	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarl	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarq	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarw	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarl	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarq	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sarx	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	sarx	%r25d,0x123(%r31,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	sarx	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	sarx	%r31,0x123(%r31,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	sbb	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	sbb	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	sbb	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	sbb	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	sbbb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbbw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbbl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbbq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbbw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbbl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbbq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbb	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
+	sbb	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbb	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	sbb	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbb	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbb	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	sbb	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbb	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	sbb	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sbb	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
+	sbb	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	sbb	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	sbb	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	sbb	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	sha1msg1	%xmm23,%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha1msg1	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha1msg2	%xmm23,%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha1msg2	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha1nexte	%xmm23,%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha1nexte	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha1rnds4	$0x7b,%xmm23,%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha1rnds4	$0x7b,0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha256msg1	%xmm23,%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha256msg1	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha256msg2	%xmm23,%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha256msg2	0x123(%r31,%rax,4),%xmm22	 #APX_F OPC_EVEX_EVEX
+	sha256rnds2	0x123(%r31,%rax,4),%xmm12	 #APX_F OPC_EVEX_EVEX
+	shl	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	shl	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	shl	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	shl	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	shlb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shll	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlb	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shll	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shl	$1,%r16b	 #APX_F OPC_EVEX_EVEX
+	shl	$1,%r18w	 #APX_F OPC_EVEX_EVEX
+	shl	$1,%r25d	 #APX_F OPC_EVEX_EVEX
+	shl	$1,%r31	 #APX_F OPC_EVEX_EVEX
+	shlb	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlw	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shll	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlq	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlw	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shll	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlq	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shl	%cl,%r16b	 #APX_F OPC_EVEX_EVEX
+	shl	%cl,%r18w	 #APX_F OPC_EVEX_EVEX
+	shl	%cl,%r25d	 #APX_F OPC_EVEX_EVEX
+	shl	%cl,%r31	 #APX_F OPC_EVEX_EVEX
+	shlb	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlw	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shll	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlq	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlb	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlw	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shll	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlq	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shld	$0x7b,%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	shld	$0x7b,%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shld	$0x7b,%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	shld	$0x7b,%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shld	$0x7b,%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	shld	$0x7b,%r31,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shld	%cl,%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	shld	%cl,%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shld	%cl,%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	shld	%cl,%r25d,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shld	%cl,%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shld	%cl,%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	shld	%cl,%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shlx	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	shlx	%r25d,0x123(%r31,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	shlx	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	shlx	%r31,0x123(%r31,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	shr	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	shr	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	shr	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	shr	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	shrb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shr	$1,%r16b	 #APX_F OPC_EVEX_EVEX
+	shr	$1,%r18w	 #APX_F OPC_EVEX_EVEX
+	shr	$1,%r25d	 #APX_F OPC_EVEX_EVEX
+	shr	$1,%r31	 #APX_F OPC_EVEX_EVEX
+	shrb	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrw	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrl	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrq	$1,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrw	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrl	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrq	$1,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shr	%cl,%r16b	 #APX_F OPC_EVEX_EVEX
+	shr	%cl,%r18w	 #APX_F OPC_EVEX_EVEX
+	shr	%cl,%r25d	 #APX_F OPC_EVEX_EVEX
+	shr	%cl,%r31	 #APX_F OPC_EVEX_EVEX
+	shrb	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrw	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrl	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrq	%cl,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrw	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrl	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrq	%cl,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrd	$0x7b,%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	shrd	$0x7b,%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrd	$0x7b,%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	shrd	$0x7b,%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrd	$0x7b,%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	shrd	$0x7b,%r31,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrd	%cl,%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	shrd	%cl,%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrd	%cl,%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	shrd	%cl,%r25d,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrd	%cl,%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrd	%cl,%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	shrd	%cl,%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	shrx	%r25d,%edx,%r10d	 #APX_F OPC_EVEX_EVEX
+	shrx	%r25d,0x123(%r31,%rax,4),%edx	 #APX_F OPC_EVEX_EVEX
+	shrx	%r31,%r15,%r11	 #APX_F OPC_EVEX_EVEX
+	shrx	%r31,0x123(%r31,%rax,4),%r15	 #APX_F OPC_EVEX_EVEX
+	sttilecfg	0x123(%r31,%rax,4)	 #APX_F
+	sub	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	sub	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	sub	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	sub	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	subb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	subw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	subl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	subq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	subw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	subl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	subq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sub	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
+	sub	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sub	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	sub	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sub	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sub	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	sub	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sub	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	sub	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	sub	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
+	sub	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	sub	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	sub	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	sub	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	tileloadd	0x123(%r31,%rax,4),%tmm6	 #APX_F
+	tileloaddt1	0x123(%r31,%rax,4),%tmm6	 #APX_F
+	tilestored	%tmm6,0x123(%r31,%rax,4)	 #APX_F
+	tzcnt	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	tzcnt	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	tzcnt	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	tzcnt	0x123(%r16,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	tzcnt	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	tzcnt	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	tzcnt	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	wrssd	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	wrssq	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	wrussd	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	wrussq	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xor	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
+	xor	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
+	xor	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
+	xor	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
+	xorb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xorw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xorl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xorq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xorw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xorl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xorq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xor	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
+	xor	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xor	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
+	xor	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xor	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xor	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
+	xor	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xor	%r31,%r15	 #APX_F OPC_EVEX_EVEX
+	xor	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
+	xor	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
+	xor	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+	xor	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
+	xor	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
+	xor	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
+
+.intel_syntax noprefix
+	aadd	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	aadd	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	aand	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	aand	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	adc	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	adc	dl,r16b	 #APX_F OPC_EVEX_EVEX
+	adc	BYTE PTR [r31+rax*4+0x123],r16b	 #APX_F OPC_EVEX_EVEX
+	adc	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	adc	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	adc	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	adc	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	adc	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	adc	r15,r31	 #APX_F OPC_EVEX_EVEX
+	adc	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	adc	r16b,BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adc	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adc	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adc	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adc	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adcx	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	adcx	r15,r31	 #APX_F OPC_EVEX_EVEX
+	adcx	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adcx	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	add	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	add	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	add	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	add	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	add	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	add	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	add	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	add	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	add	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	add	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	add	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	add	dl,r16b	 #APX_F OPC_EVEX_EVEX
+	add	BYTE PTR [r31+rax*4+0x123],r16b	 #APX_F OPC_EVEX_EVEX
+	add	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	add	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	add	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	add	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	add	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	add	r15,r31	 #APX_F OPC_EVEX_EVEX
+	add	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	add	r16b,BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	add	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	add	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	add	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	add	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adox	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	adox	r15,r31	 #APX_F OPC_EVEX_EVEX
+	adox	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	adox	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesdec128kl	xmm22,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesdec256kl	xmm22,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesdecwide128kl	[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesdecwide256kl	[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesenc128kl	xmm22,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesenc256kl	xmm22,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesencwide128kl	[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aesencwide256kl	[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	and	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	and	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	and	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	and	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	and	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	and	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	and	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	and	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	and	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	and	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	and	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	and	dl,r16b	 #APX_F OPC_EVEX_EVEX
+	and	BYTE PTR [r31+rax*4+0x123],r16b	 #APX_F OPC_EVEX_EVEX
+	and	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	and	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	and	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	and	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	and	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	and	r15,r31	 #APX_F OPC_EVEX_EVEX
+	and	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	and	r16b,BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	and	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	and	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	and	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	and	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	andn	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	andn	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	andn	edx,r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	andn	r15,r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	aor	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	aor	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	axor	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	axor	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	bextr	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	bextr	edx,DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	bextr	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	bextr	r15,QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	blsi	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	blsi	r15,r31	 #APX_F OPC_EVEX_EVEX
+	blsi	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	blsi	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	blsmsk	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	blsmsk	r15,r31	 #APX_F OPC_EVEX_EVEX
+	blsmsk	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	blsmsk	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	blsr	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	blsr	r15,r31	 #APX_F OPC_EVEX_EVEX
+	blsr	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	blsr	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	bzhi	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	bzhi	edx,DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	bzhi	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	bzhi	r15,QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	cmpbexadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpbexadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpbxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpbxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmplxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmplxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnbexadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnbexadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnbxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnbxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnlexadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnlexadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnlxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnlxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnoxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnoxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnpxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnpxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnsxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnsxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpnzxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpnzxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpoxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpoxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmppxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmppxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpsxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpsxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	cmpzxadd	DWORD PTR [r31+rax*4+0x123],edx,r25d	 #APX_F OPC_EVEX_EVEX
+	cmpzxadd	QWORD PTR [r31+rax*4+0x123],r15,r31	 #APX_F OPC_EVEX_EVEX
+	dec	r16b	 #APX_F OPC_EVEX_EVEX
+	dec	r18w	 #APX_F OPC_EVEX_EVEX
+	dec	r25d	 #APX_F OPC_EVEX_EVEX
+	dec	r31	 #APX_F OPC_EVEX_EVEX
+	dec	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	dec	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	dec	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	dec	BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	dec	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	dec	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	dec	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	div	r16b	 #APX_F OPC_EVEX_EVEX
+	div	r18w	 #APX_F OPC_EVEX_EVEX
+	div	r25d	 #APX_F OPC_EVEX_EVEX
+	div	r31	 #APX_F OPC_EVEX_EVEX
+	div	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	div	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	div	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	div	BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	div	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	div	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	div	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	encodekey128	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	encodekey256	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	enqcmd	r25d,[r31d+eax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	enqcmd	r31,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	enqcmds	r25d,[r31d+eax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	enqcmds	r31,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	idiv	r16b	 #APX_F OPC_EVEX_EVEX
+	idiv	r18w	 #APX_F OPC_EVEX_EVEX
+	idiv	r25d	 #APX_F OPC_EVEX_EVEX
+	idiv	r31	 #APX_F OPC_EVEX_EVEX
+	idiv	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	idiv	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	idiv	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	idiv	BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	idiv	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	idiv	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	idiv	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	ax,r18w,0x7b	 #APX_F
+	imul	edx,r25d,0x7b	 #APX_F
+	imul	r15,r31,0x7b	 #APX_F
+	imul	r25d,DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F
+	imul	r31,QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F
+	imul	r18w,WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F
+	imul	r25d,DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F
+	imul	r31,QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F
+	imul	r16b	 #APX_F OPC_EVEX_EVEX
+	imul	r18w	 #APX_F OPC_EVEX_EVEX
+	imul	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	imul	r25d	 #APX_F OPC_EVEX_EVEX
+	imul	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	imul	r31	 #APX_F OPC_EVEX_EVEX
+	imul	r15,r31	 #APX_F OPC_EVEX_EVEX
+	imul	BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	r18w,WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	r25d,DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	imul	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	inc	r16b	 #APX_F OPC_EVEX_EVEX
+	inc	r18w	 #APX_F OPC_EVEX_EVEX
+	inc	r25d	 #APX_F OPC_EVEX_EVEX
+	inc	r31	 #APX_F OPC_EVEX_EVEX
+	inc	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	inc	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	inc	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	inc	BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	inc	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	inc	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	inc	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	invept	r31,OWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	invpcid	r31,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	invvpid	r31,OWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	kmovb	k5,k3	 #APX_F OPC_EVEX_EVEX
+	kmovb	r25d,k5	 #APX_F OPC_EVEX_EVEX
+	kmovb	BYTE PTR [r31+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	kmovb	k5,r25d	 #APX_F OPC_EVEX_EVEX
+	kmovb	k5,BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	kmovd	k5,k3	 #APX_F OPC_EVEX_EVEX
+	kmovd	r25d,k5	 #APX_F OPC_EVEX_EVEX
+	kmovd	DWORD PTR [r31+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	kmovd	k5,r25d	 #APX_F OPC_EVEX_EVEX
+	kmovd	k5,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	kmovq	k5,k3	 #APX_F OPC_EVEX_EVEX
+	kmovq	r31,k5	 #APX_F OPC_EVEX_EVEX
+	kmovq	QWORD PTR [r31+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	kmovq	k5,r31	 #APX_F OPC_EVEX_EVEX
+	kmovq	k5,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	kmovw	k5,k3	 #APX_F OPC_EVEX_EVEX
+	kmovw	r25d,k5	 #APX_F OPC_EVEX_EVEX
+	kmovw	WORD PTR [r31+rax*4+0x123],k5	 #APX_F OPC_EVEX_EVEX
+	kmovw	k5,r25d	 #APX_F OPC_EVEX_EVEX
+	kmovw	k5,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	ldtilecfg	[r31+rax*4+0x123]	 #APX_F
+	lzcnt	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	lzcnt	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	lzcnt	r15,r31	 #APX_F OPC_EVEX_EVEX
+	lzcnt	r18w,WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	lzcnt	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	lzcnt	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	lzcnt	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	movbe	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	movbe	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	movbe	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	movbe	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	movbe	DWORD PTR [r16+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	movbe	r15,r31	 #APX_F OPC_EVEX_EVEX
+	movbe	QWORD PTR [r16+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	movbe	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	movbe	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	movbe	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	movbe	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	movdir64b	r25d,[r31d+eax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	movdir64b	r31,[r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	movdiri	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	movdiri	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	mul	r16b	 #APX_F OPC_EVEX_EVEX
+	mul	r18w	 #APX_F OPC_EVEX_EVEX
+	mul	r25d	 #APX_F OPC_EVEX_EVEX
+	mul	r31	 #APX_F OPC_EVEX_EVEX
+	mul	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mul	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mul	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mul	BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mul	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mul	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mul	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mulx	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	mulx	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	mulx	edx,r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	mulx	r15,r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	neg	r16b	 #APX_F OPC_EVEX_EVEX
+	neg	r18w	 #APX_F OPC_EVEX_EVEX
+	neg	r25d	 #APX_F OPC_EVEX_EVEX
+	neg	r31	 #APX_F OPC_EVEX_EVEX
+	neg	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	neg	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	neg	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	neg	BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	neg	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	neg	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	neg	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	not	r16b	 #APX_F OPC_EVEX_EVEX
+	not	r18w	 #APX_F OPC_EVEX_EVEX
+	not	r25d	 #APX_F OPC_EVEX_EVEX
+	not	r31	 #APX_F OPC_EVEX_EVEX
+	not	WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	not	DWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	not	QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	not	BYTE PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	not	WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	not	DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	not	QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	or	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	or	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	or	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	or	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	or	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	or	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	or	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	or	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	or	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	or	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	or	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	or	dl,r16b	 #APX_F OPC_EVEX_EVEX
+	or	BYTE PTR [r31+rax*4+0x123],r16b	 #APX_F OPC_EVEX_EVEX
+	or	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	or	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	or	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	or	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	or	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	or	r15,r31	 #APX_F OPC_EVEX_EVEX
+	or	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	or	r16b,BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	or	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	or	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	or	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	or	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	pdep	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	pdep	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	pdep	edx,r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	pdep	r15,r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	pext	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	pext	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	pext	edx,r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	pext	r15,r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	popcnt	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	popcnt	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	popcnt	r15,r31	 #APX_F OPC_EVEX_EVEX
+	popcnt	r18w,WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	popcnt	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	popcnt	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	popcnt	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	rcl	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcl	r16b,1	 #APX_F OPC_EVEX_EVEX
+	rcl	r18w,1	 #APX_F OPC_EVEX_EVEX
+	rcl	r25d,1	 #APX_F OPC_EVEX_EVEX
+	rcl	r31,1	 #APX_F OPC_EVEX_EVEX
+	rcl	BYTE PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcl	WORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcl	DWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcl	QWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcl	WORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcl	DWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcl	QWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcl	r16b,cl	 #APX_F OPC_EVEX_EVEX
+	rcl	r18w,cl	 #APX_F OPC_EVEX_EVEX
+	rcl	r25d,cl	 #APX_F OPC_EVEX_EVEX
+	rcl	r31,cl	 #APX_F OPC_EVEX_EVEX
+	rcl	BYTE PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcl	WORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcl	DWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcl	QWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcl	WORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcl	DWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcl	QWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcr	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rcr	r16b,1	 #APX_F OPC_EVEX_EVEX
+	rcr	r18w,1	 #APX_F OPC_EVEX_EVEX
+	rcr	r25d,1	 #APX_F OPC_EVEX_EVEX
+	rcr	r31,1	 #APX_F OPC_EVEX_EVEX
+	rcr	BYTE PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcr	WORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcr	DWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcr	QWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcr	WORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcr	DWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcr	QWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rcr	r16b,cl	 #APX_F OPC_EVEX_EVEX
+	rcr	r18w,cl	 #APX_F OPC_EVEX_EVEX
+	rcr	r25d,cl	 #APX_F OPC_EVEX_EVEX
+	rcr	r31,cl	 #APX_F OPC_EVEX_EVEX
+	rcr	BYTE PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcr	WORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcr	DWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcr	QWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcr	WORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcr	DWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rcr	QWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rol	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rol	r16b,1	 #APX_F OPC_EVEX_EVEX
+	rol	r18w,1	 #APX_F OPC_EVEX_EVEX
+	rol	r25d,1	 #APX_F OPC_EVEX_EVEX
+	rol	r31,1	 #APX_F OPC_EVEX_EVEX
+	rol	BYTE PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rol	WORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rol	DWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rol	QWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rol	WORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rol	DWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rol	QWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	rol	r16b,cl	 #APX_F OPC_EVEX_EVEX
+	rol	r18w,cl	 #APX_F OPC_EVEX_EVEX
+	rol	r25d,cl	 #APX_F OPC_EVEX_EVEX
+	rol	r31,cl	 #APX_F OPC_EVEX_EVEX
+	rol	BYTE PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rol	WORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rol	DWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rol	QWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rol	WORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rol	DWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rol	QWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	ror	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	ror	r16b,1	 #APX_F OPC_EVEX_EVEX
+	ror	r18w,1	 #APX_F OPC_EVEX_EVEX
+	ror	r25d,1	 #APX_F OPC_EVEX_EVEX
+	ror	r31,1	 #APX_F OPC_EVEX_EVEX
+	ror	BYTE PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	ror	WORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	ror	DWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	ror	QWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	ror	WORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	ror	DWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	ror	QWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	ror	r16b,cl	 #APX_F OPC_EVEX_EVEX
+	ror	r18w,cl	 #APX_F OPC_EVEX_EVEX
+	ror	r25d,cl	 #APX_F OPC_EVEX_EVEX
+	ror	r31,cl	 #APX_F OPC_EVEX_EVEX
+	ror	BYTE PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	ror	WORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	ror	DWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	ror	QWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	ror	WORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	ror	DWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	ror	QWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	rorx	edx,r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	rorx	r15,r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	rorx	r25d,DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	rorx	r31,QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sar	r16b,1	 #APX_F OPC_EVEX_EVEX
+	sar	r18w,1	 #APX_F OPC_EVEX_EVEX
+	sar	r25d,1	 #APX_F OPC_EVEX_EVEX
+	sar	r31,1	 #APX_F OPC_EVEX_EVEX
+	sar	BYTE PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	sar	WORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	sar	DWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	sar	QWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	sar	WORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	sar	DWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	sar	QWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	sar	r16b,cl	 #APX_F OPC_EVEX_EVEX
+	sar	r18w,cl	 #APX_F OPC_EVEX_EVEX
+	sar	r25d,cl	 #APX_F OPC_EVEX_EVEX
+	sar	r31,cl	 #APX_F OPC_EVEX_EVEX
+	sar	BYTE PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	sar	WORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	sar	DWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	sar	QWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	sar	WORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	sar	DWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	sar	QWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	sarx	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	sarx	edx,DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	sarx	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	sarx	r15,QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	sbb	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sbb	dl,r16b	 #APX_F OPC_EVEX_EVEX
+	sbb	BYTE PTR [r31+rax*4+0x123],r16b	 #APX_F OPC_EVEX_EVEX
+	sbb	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	sbb	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	sbb	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	sbb	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	sbb	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	sbb	r15,r31	 #APX_F OPC_EVEX_EVEX
+	sbb	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	sbb	r16b,BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sbb	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sbb	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sbb	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sbb	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sha1msg1	xmm22,xmm23	 #APX_F OPC_EVEX_EVEX
+	sha1msg1	xmm22,XMMWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sha1msg2	xmm22,xmm23	 #APX_F OPC_EVEX_EVEX
+	sha1msg2	xmm22,XMMWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sha1nexte	xmm22,xmm23	 #APX_F OPC_EVEX_EVEX
+	sha1nexte	xmm22,XMMWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sha1rnds4	xmm22,xmm23,0x7b	 #APX_F OPC_EVEX_EVEX
+	sha1rnds4	xmm22,XMMWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sha256msg1	xmm22,xmm23	 #APX_F OPC_EVEX_EVEX
+	sha256msg1	xmm22,XMMWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sha256msg2	xmm22,xmm23	 #APX_F OPC_EVEX_EVEX
+	sha256msg2	xmm22,XMMWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sha256rnds2	xmm12,XMMWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	shl	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	BYTE PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shl	r16b,1	 #APX_F OPC_EVEX_EVEX
+	shl	r18w,1	 #APX_F OPC_EVEX_EVEX
+	shl	r25d,1	 #APX_F OPC_EVEX_EVEX
+	shl	r31,1	 #APX_F OPC_EVEX_EVEX
+	shl	BYTE PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shl	WORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shl	DWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shl	QWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shl	WORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shl	DWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shl	QWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shl	r16b,cl	 #APX_F OPC_EVEX_EVEX
+	shl	r18w,cl	 #APX_F OPC_EVEX_EVEX
+	shl	r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shl	r31,cl	 #APX_F OPC_EVEX_EVEX
+	shl	BYTE PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shl	WORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shl	DWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shl	QWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shl	BYTE PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shl	WORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shl	DWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shl	QWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shld	ax,r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	shld	WORD PTR [r31+rax*4+0x123],r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	shld	edx,r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	shld	DWORD PTR [r31+rax*4+0x123],r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	shld	r15,r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	shld	QWORD PTR [r16+rax*4+0x123],r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	shld	ax,r18w,cl	 #APX_F OPC_EVEX_EVEX
+	shld	WORD PTR [r16+rax*4+0x123],r18w,cl	 #APX_F OPC_EVEX_EVEX
+	shld	edx,r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shld	DWORD PTR [r16+rax*4+0x123],r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shld	DWORD PTR [r31+rax*4+0x123],r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shld	r15,r31,cl	 #APX_F OPC_EVEX_EVEX
+	shld	QWORD PTR [r31+rax*4+0x123],r31,cl	 #APX_F OPC_EVEX_EVEX
+	shlx	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	shlx	edx,DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	shlx	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	shlx	r15,QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	shr	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	shr	r16b,1	 #APX_F OPC_EVEX_EVEX
+	shr	r18w,1	 #APX_F OPC_EVEX_EVEX
+	shr	r25d,1	 #APX_F OPC_EVEX_EVEX
+	shr	r31,1	 #APX_F OPC_EVEX_EVEX
+	shr	BYTE PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shr	WORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shr	DWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shr	QWORD PTR [r16+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shr	WORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shr	DWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shr	QWORD PTR [r31+rax*4+0x123],1	 #APX_F OPC_EVEX_EVEX
+	shr	r16b,cl	 #APX_F OPC_EVEX_EVEX
+	shr	r18w,cl	 #APX_F OPC_EVEX_EVEX
+	shr	r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shr	r31,cl	 #APX_F OPC_EVEX_EVEX
+	shr	BYTE PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shr	WORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shr	DWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shr	QWORD PTR [r16+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shr	WORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shr	DWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shr	QWORD PTR [r31+rax*4+0x123],cl	 #APX_F OPC_EVEX_EVEX
+	shrd	ax,r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	shrd	WORD PTR [r31+rax*4+0x123],r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	shrd	edx,r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	shrd	DWORD PTR [r31+rax*4+0x123],r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	shrd	r15,r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	shrd	QWORD PTR [r16+rax*4+0x123],r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	shrd	ax,r18w,cl	 #APX_F OPC_EVEX_EVEX
+	shrd	WORD PTR [r16+rax*4+0x123],r18w,cl	 #APX_F OPC_EVEX_EVEX
+	shrd	edx,r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shrd	DWORD PTR [r16+rax*4+0x123],r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shrd	DWORD PTR [r31+rax*4+0x123],r25d,cl	 #APX_F OPC_EVEX_EVEX
+	shrd	r15,r31,cl	 #APX_F OPC_EVEX_EVEX
+	shrd	QWORD PTR [r31+rax*4+0x123],r31,cl	 #APX_F OPC_EVEX_EVEX
+	shrx	r10d,edx,r25d	 #APX_F OPC_EVEX_EVEX
+	shrx	edx,DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	shrx	r11,r15,r31	 #APX_F OPC_EVEX_EVEX
+	shrx	r15,QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	sttilecfg	[r31+rax*4+0x123]	 #APX_F
+	sub	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	sub	dl,r16b	 #APX_F OPC_EVEX_EVEX
+	sub	BYTE PTR [r31+rax*4+0x123],r16b	 #APX_F OPC_EVEX_EVEX
+	sub	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	sub	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	sub	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	sub	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	sub	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	sub	r15,r31	 #APX_F OPC_EVEX_EVEX
+	sub	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	sub	r16b,BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sub	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sub	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sub	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	sub	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	tileloadd	tmm6,[r31+rax*4+0x123]	 #APX_F
+	tileloaddt1	tmm6,[r31+rax*4+0x123]	 #APX_F
+	tilestored	[r31+rax*4+0x123],tmm6	 #APX_F
+	tzcnt	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	tzcnt	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	tzcnt	r15,r31	 #APX_F OPC_EVEX_EVEX
+	tzcnt	r18w,WORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	tzcnt	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	tzcnt	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	tzcnt	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	wrssd	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	wrssq	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	wrussd	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	wrussq	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	xor	r16b,0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	r18w,0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	r25d,0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	r31,0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	BYTE PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	WORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	DWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	QWORD PTR [r16+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	WORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	DWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	QWORD PTR [r31+rax*4+0x123],0x7b	 #APX_F OPC_EVEX_EVEX
+	xor	dl,r16b	 #APX_F OPC_EVEX_EVEX
+	xor	BYTE PTR [r31+rax*4+0x123],r16b	 #APX_F OPC_EVEX_EVEX
+	xor	ax,r18w	 #APX_F OPC_EVEX_EVEX
+	xor	WORD PTR [r16+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	xor	WORD PTR [r31+rax*4+0x123],r18w	 #APX_F OPC_EVEX_EVEX
+	xor	edx,r25d	 #APX_F OPC_EVEX_EVEX
+	xor	DWORD PTR [r31+rax*4+0x123],r25d	 #APX_F OPC_EVEX_EVEX
+	xor	r15,r31	 #APX_F OPC_EVEX_EVEX
+	xor	QWORD PTR [r31+rax*4+0x123],r31	 #APX_F OPC_EVEX_EVEX
+	xor	r16b,BYTE PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	xor	r31,QWORD PTR [r16+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	xor	r18w,WORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	xor	r25d,DWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
+	xor	r31,QWORD PTR [r31+rax*4+0x123]	 #APX_F OPC_EVEX_EVEX
diff --git a/gas/testsuite/gas/i386/x86-64-evex.d b/gas/testsuite/gas/i386/x86-64-evex.d
index 041747db892..5d974c312da 100644
--- a/gas/testsuite/gas/i386/x86-64-evex.d
+++ b/gas/testsuite/gas/i386/x86-64-evex.d
@@ -17,6 +17,6 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 f1 d6 38 7b f0    	vcvtusi2ss %rax,\{rd-sae\},%xmm5,%xmm6
  +[a-f0-9]+:	62 f1 57 38 7b f0    	vcvtusi2sd %eax,\{rd-bad\},%xmm5,%xmm6
  +[a-f0-9]+:	62 f1 d7 38 7b f0    	vcvtusi2sd %rax,\{rd-sae\},%xmm5,%xmm6
- +[a-f0-9]+:	62 e1 7e 08 2d c0    	vcvtss2si %xmm0,\(bad\)
+ +[a-f0-9]+:	62 e1 7e 08 2d c0    	vcvtss2si %xmm0,%r16d
  +[a-f0-9]+:	62 e1 7c 08 c2 c0 00 	vcmpeqps %xmm0,%xmm0,\(bad\)
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-inval-movbe.l b/gas/testsuite/gas/i386/x86-64-inval-movbe.l
index 1c8ceb55c11..44ddfe4f034 100644
--- a/gas/testsuite/gas/i386/x86-64-inval-movbe.l
+++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.l
@@ -1,29 +1,30 @@
 .*: Assembler messages:
-.*:4: Error: .*
 .*:5: Error: .*
 .*:6: Error: .*
 .*:7: Error: .*
 .*:8: Error: .*
-.*:11: Error: .*
+.*:9: Error: .*
 .*:12: Error: .*
 .*:13: Error: .*
 .*:14: Error: .*
 .*:15: Error: .*
+.*:16: Error: .*
 GAS LISTING .*
 
 
 [ 	]*1[ 	]+\# Check illegal movbe in 64bit mode\.
 [ 	]*2[ 	]+\.text
-[ 	]*3[ 	]+foo:
-[ 	]*4[ 	]+movbe	\(%rcx\),%bl
-[ 	]*5[ 	]+movbe	%ecx,%ebx
-[ 	]*6[ 	]+movbe	%bx,%rcx
-[ 	]*7[ 	]+movbe	%rbx,%rcx
-[ 	]*8[ 	]+movbe	%bl,\(%rcx\)
-[ 	]*9[ 	]+
-[ 	]*10[ 	]+\.intel_syntax noprefix
-[ 	]*11[ 	]+movbe bl, byte ptr \[rcx\]
-[ 	]*12[ 	]+movbe ebx, ecx
-[ 	]*13[ 	]+movbe rcx, bx
-[ 	]*14[ 	]+movbe rcx, rbx
-[ 	]*15[ 	]+movbe byte ptr \[rcx\], bl
+[ 	]*3[ 	]+\.arch \.noapx_f
+[ 	]*4[ 	]+foo:
+[ 	]*5[ 	]+movbe	\(%rcx\),%bl
+[ 	]*6[ 	]+movbe	%ecx,%ebx
+[ 	]*7[ 	]+movbe	%bx,%rcx
+[ 	]*8[ 	]+movbe	%rbx,%rcx
+[ 	]*9[ 	]+movbe	%bl,\(%rcx\)
+[ 	]*10[ 	]+
+[ 	]*11[ 	]+\.intel_syntax noprefix
+[ 	]*12[ 	]+movbe bl, byte ptr \[rcx\]
+[ 	]*13[ 	]+movbe ebx, ecx
+[ 	]*14[ 	]+movbe rcx, bx
+[ 	]*15[ 	]+movbe rcx, rbx
+[ 	]*16[ 	]+movbe byte ptr \[rcx\], bl
diff --git a/gas/testsuite/gas/i386/x86-64-inval-movbe.s b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
index 38f09b14d64..380a9191b6a 100644
--- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
+++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
@@ -1,5 +1,6 @@
 # Check illegal movbe in 64bit mode.
 	.text
+	.arch .noapx_f
 foo:
 	movbe	(%rcx),%bl
 	movbe	%ecx,%ebx
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 07df89ba0cc..46fb3681528 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -361,8 +361,12 @@ run_dump_test "x86-64-avx512f-rcigrne"
 run_dump_test "x86-64-avx512f-rcigru-intel"
 run_dump_test "x86-64-avx512f-rcigru"
 run_list_test "x86-64-apx-egpr-inval" "-al"
+run_list_test "x86-64-apx-egpr-promote-inval" "-al"
 run_dump_test "x86-64-apx-rex2"
 run_dump_test "x86-64-apx-rex2-inval"
+run_dump_test "x86-64-apx-evex-promoted"
+run_dump_test "x86-64-apx-evex-promoted-intel"
+run_dump_test "x86-64-apx-evex-egpr"
 run_dump_test "x86-64-avx512f-rcigrz-intel"
 run_dump_test "x86-64-avx512f-rcigrz"
 run_dump_test "x86-64-clwb"
-- 
2.25.1


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

* [PATCH 4/8] Support APX NDD
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
                   ` (2 preceding siblings ...)
  2023-09-19 15:25 ` [PATCH 3/8] Add tests for " Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-27 14:44   ` Jan Beulich
  2023-09-28  7:57   ` Jan Beulich
  2023-09-19 15:25 ` [PATCH 5/8] Support APX NDD optimized encoding Cui, Lili
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, konglin1

From: konglin1 <lingling.kong@intel.com>

opcodes/ChangeLog:

	* opcodes/i386-dis-evex-prefix.h: Add NDD decode for adox/adcx.
	* opcodes/i386-dis-evex-reg.h: Handle for REG_EVEX_MAP4_80,
	REG_EVEX_MAP4_81, REG_EVEX_MAP4_83, REG_EVEX_MAP4_C0,
	REG_EVEX_MAP4_C1, REG_EVEX_MAP4_D0, REG_EVEX_MAP4_D1,
	REG_EVEX_MAP4_D2, REG_EVEX_MAP4_D3, REG_EVEX_MAP4_F6,
	REG_EVEX_MAP4_F7, REG_EVEX_MAP4_FE, REG_EVEX_MAP4_FF.
	* opcodes/i386-dis-evex.h: Add NDD insn.
	* opcodes/i386-dis.c (VexGb): Add new define.
	(VexGv): Ditto.
	(get_valid_dis386): Change for NDD decode.
	(print_insn): Ditto.
	(print_register): Ditto.
	(intel_operand_size): Ditto.
	(OP_E_memory): Ditto.
	(OP_VEX): Ditto.
	* opcodes/i386-opc.h (Opcode_APX_NDDD): New macro.
	* opcodes/i386-opc.tbl: Add APX NDD instructions.
	* opcodes/i386-tbl.h: Regenerated.

gas/ChangeLog:

	* gas/config/tc-i386.c (is_any_apx_encoding): Add legacy insn
	promote to SPACE_EVEXMAP4.
	(build_legacy_insns_with_apx_encoding): Add ndd bit encode.
	(md_assemble): Change for ndd encode.
	(process_operands): Ditto.
	(build_modrm_byte): Ditto.
	(operand_size_match):
	Support APX NDD that the number of operands is 3.
	(match_template): Support swap the first two operands for
	APX NDD that the number of operands is 3.
	* gas/testsuite/gas/i386/x86-64.exp: Add x86-64-apx-ndd.
	* gas/testsuite/gas/i386/x86-64-apx-ndd.d: New test.
	* gas/testsuite/gas/i386/x86-64-apx-ndd.s: Ditto.
	* testsuite/gas/i386/x86-64-pseudos.d: Add test.
	* testsuite/gas/i386/x86-64-pseudos.s: Ditto.
---
 gas/config/tc-i386.c                    |  80 ++++++++----
 gas/testsuite/gas/i386/x86-64-apx-ndd.d | 165 ++++++++++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx-ndd.s | 156 ++++++++++++++++++++++
 gas/testsuite/gas/i386/x86-64-pseudos.d |  42 ++++++
 gas/testsuite/gas/i386/x86-64-pseudos.s |  43 ++++++
 gas/testsuite/gas/i386/x86-64.exp       |   1 +
 opcodes/i386-dis-evex-prefix.h          |   4 +-
 opcodes/i386-dis-evex-reg.h             | 123 ++++++++++++++++++
 opcodes/i386-dis-evex.h                 | 124 +++++++++---------
 opcodes/i386-dis.c                      |  47 ++++++-
 opcodes/i386-opc.h                      |   1 +
 opcodes/i386-opc.tbl                    |  67 ++++++++++
 12 files changed, 762 insertions(+), 91 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 48916bc3846..381e389bb04 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -2261,8 +2261,9 @@ operand_size_match (const insn_template *t)
       unsigned int given = i.operands - j - 1;
 
       /* For FMA4 and XOP insns VEX.W controls just the first two
-	 register operands.  */
-      if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP))
+	 register operands. And APX insns just swap the first operands.  */
+      if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP)
+	  || (is_cpu (t,CpuAPX_F) && i.operands == 3))
 	given = j < 2 ? 1 - j : j;
 
       if (t->operand_types[j].bitfield.class == Reg
@@ -3876,6 +3877,7 @@ is_any_apx_encoding (void)
 {
   return i.rex2 
     || i.rex2_encoding
+    || i.tm.opcode_space == SPACE_EVEXMAP4
     || (i.vex.register_specifier
 	&& i.vex.register_specifier->reg_flags & RegRex2);
 }
@@ -4204,6 +4206,10 @@ build_legacy_insns_with_apx_encoding (void)
     }
 
   build_evex_insns_with_extend_evex_prefix ();
+
+  /* Encode the NDD bit.  */
+  if (i.vex.register_specifier)
+    i.vex.bytes[3] |= 0x10;
 }
 
 static void
@@ -7383,26 +7389,31 @@ match_template (char mnem_suffix)
 	  overlap1 = operand_type_and (operand_types[0], operand_types[1]);
 	  if (t->opcode_modifier.d && i.reg_operands == i.operands
 	      && !operand_type_all_zero (&overlap1))
-	    switch (i.dir_encoding)
-	      {
-	      case dir_encoding_load:
-		if (operand_type_check (operand_types[i.operands - 1], anymem)
-		    || t->opcode_modifier.regmem)
-		  goto check_reverse;
-		break;
+	    {
+	      int isMemOperand = (t->opcode_modifier.vexvvvv
+				  && t->opcode_space == SPACE_EVEXMAP4)
+				  ? i.operands - 2 : i.operands - 1;
+	      switch (i.dir_encoding)
+		{
+		case dir_encoding_load:
+		  if (operand_type_check (operand_types[isMemOperand], anymem)
+		      || t->opcode_modifier.regmem)
+		    goto check_reverse;
+		  break;
 
-	      case dir_encoding_store:
-		if (!operand_type_check (operand_types[i.operands - 1], anymem)
-		    && !t->opcode_modifier.regmem)
-		  goto check_reverse;
-		break;
+		case dir_encoding_store:
+		  if (!operand_type_check (operand_types[isMemOperand], anymem)
+		      && !t->opcode_modifier.regmem)
+		    goto check_reverse;
+		  break;
 
-	      case dir_encoding_swap:
-		goto check_reverse;
+		case dir_encoding_swap:
+		  goto check_reverse;
 
-	      case dir_encoding_default:
-		break;
-	      }
+		case dir_encoding_default:
+		  break;
+		}
+	    }
 	  /* If we want store form, we skip the current load.  */
 	  if ((i.dir_encoding == dir_encoding_store
 	       || i.dir_encoding == dir_encoding_swap)
@@ -7432,11 +7443,13 @@ match_template (char mnem_suffix)
 		continue;
 	      /* Try reversing direction of operands.  */
 	      j = is_cpu (t, CpuFMA4)
-		  || is_cpu (t, CpuXOP) ? 1 : i.operands - 1;
+		  || is_cpu (t, CpuXOP)
+		  || is_cpu (t, CpuAPX_F) ? 1 : i.operands - 1;
 	      overlap0 = operand_type_and (i.types[0], operand_types[j]);
 	      overlap1 = operand_type_and (i.types[j], operand_types[0]);
 	      overlap2 = operand_type_and (i.types[1], operand_types[1]);
-	      gas_assert (t->operands != 3 || !check_register);
+	      gas_assert (t->operands != 3 || !check_register
+			  || is_cpu (t,CpuAPX_F));
 	      if (!operand_type_match (overlap0, i.types[0])
 		  || !operand_type_match (overlap1, i.types[j])
 		  || (t->operands == 3
@@ -7471,6 +7484,12 @@ match_template (char mnem_suffix)
 		  found_reverse_match = Opcode_VexW;
 		  goto check_operands_345;
 		}
+	      else if (is_cpu (t,CpuAPX_F)
+		       && i.operands == 3)
+		{
+		  found_reverse_match = Opcode_APX_NDDD;
+		  goto check_operands_345;
+		}
 	      else if (t->opcode_space != SPACE_BASE
 		       && (t->opcode_space != SPACE_0F
 			   /* MOV to/from CR/DR/TR, as an exception, follow
@@ -7636,6 +7655,15 @@ match_template (char mnem_suffix)
 	 flipping VEX.W.  */
       i.tm.opcode_modifier.vexw ^= VEXW0 ^ VEXW1;
 
+      j = i.tm.operand_types[0].bitfield.imm8;
+      i.tm.operand_types[j] = operand_types[j + 1];
+      i.tm.operand_types[j + 1] = operand_types[j];
+      break;
+
+    case Opcode_APX_NDDD:
+      /* Only the first two register operands need reversing.  */
+      i.tm.base_opcode ^= 0x2;
+
       j = i.tm.operand_types[0].bitfield.imm8;
       i.tm.operand_types[j] = operand_types[j + 1];
       i.tm.operand_types[j + 1] = operand_types[j];
@@ -8462,8 +8490,8 @@ process_operands (void)
   const reg_entry *default_seg = NULL;
 
   /* We only need to check those implicit registers for instructions
-     with 3 operands or less.  */
-  if (i.operands <= 3)
+     with 4 operands or less.  */
+  if (i.operands <= 4)
     for (unsigned int j = 0; j < i.operands; j++)
       if (i.types[j].bitfield.instance != InstanceNone)
 	i.reg_operands--;
@@ -8825,6 +8853,9 @@ build_modrm_byte (void)
       break;
   if (v >= dest)
     v = ~0;
+  if (i.tm.opcode_space == SPACE_EVEXMAP4
+      && i.tm.opcode_modifier.vexvvvv)
+    v = dest;
   if (i.tm.extension_opcode != None)
     {
       if (dest != source)
@@ -9088,6 +9119,9 @@ build_modrm_byte (void)
       set_rex_vrex (i.op[op].regs, REX_B, false);
 	}
 
+      if (i.tm.opcode_space == SPACE_EVEXMAP4
+	  && i.tm.opcode_modifier.vexvvvv)
+	dest--;
       if (op == dest)
 	dest = ~0;
       if (op == source)
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd.d b/gas/testsuite/gas/i386/x86-64-apx-ndd.d
new file mode 100644
index 00000000000..debb99f2ff9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.d
@@ -0,0 +1,165 @@
+#as:
+#objdump: -dw
+#name: x86-64 APX NDD instructions with evex prefix encoding
+#source: x86-64-apx-ndd.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 e4 18 ff c0\s+inc    %rax,%rbx
+\s*[a-f0-9]+:\s*62 dc bc 18 ff c7\s+inc    %r31,%r8
+\s*[a-f0-9]+:\s*62 dc fc 10 ff c7\s+inc    %r31,%r16
+\s*[a-f0-9]+:\s*62 44 7c 10 00 f8\s+add    %r31b,%r8b,%r16b
+\s*[a-f0-9]+:\s*62 44 7c 10 00 f8\s+add    %r31b,%r8b,%r16b
+\s*[a-f0-9]+:\s*62 44 fc 10 01 f8\s+add    %r31,%r8,%r16
+\s*[a-f0-9]+:\s*62 44 fc 10 01 f8\s+add    %r31,%r8,%r16
+\s*[a-f0-9]+:\s*62 44 7c 10 01 f8\s+add    %r31d,%r8d,%r16d
+\s*[a-f0-9]+:\s*62 44 7c 10 01 f8\s+add    %r31d,%r8d,%r16d
+\s*[a-f0-9]+:\s*62 44 7d 10 01 f8\s+add    %r31w,%r8w,%r16w
+\s*[a-f0-9]+:\s*62 44 7d 10 01 f8\s+add    %r31w,%r8w,%r16w
+\s*[a-f0-9]+:\s*62 44 fc 10 01 f8\s+add    %r31,%r8,%r16
+\s*[a-f0-9]+:\s*62 5c fc 10 03 c7\s+add    %r31,%r8,%r16
+\s*[a-f0-9]+:\s*62 44 fc 10 01 38\s+add    %r31,\(%r8\),%r16
+\s*[a-f0-9]+:\s*62 5c fc 10 03 07\s+add    \(%r31\),%r8,%r16
+\s*[a-f0-9]+:\s*62 5c f8 10 03 84 07 90 90 00 00\s+add\s+0x9090\(%r31,%r16,1\),%r8,%r16
+\s*[a-f0-9]+:\s*62 44 f8 10 01 3c c0\s+add    %r31,\(%r8,%r16,8\),%r16
+\s*[a-f0-9]+:\s*62 d4 74 10 80 c5 34\s+add    \$0x34,%r13b,%r17b
+\s*[a-f0-9]+:\s*62 fc 5c 10 83 04 83 11\s+addl   \$0x11,\(%r19,%rax,4\),%r20d
+\s*[a-f0-9]+:\s*62 f4 0d 10 81 c0 34 12\s+add    \$0x1234,%ax,%r30w
+\s*[a-f0-9]+:\s*62 d4 fc 10 81 c7 33 44 34 12\s+add    \$0x12344433,%r15,%r16
+\s*[a-f0-9]+:\s*62 d4 fc 10 81 04 8f 33 44 34 12\s+addq   \$0x12344433,\(%r15,%rcx,4\),%r16
+\s*[a-f0-9]+:\s*62 f4 bc 18 81 c0 11 22 33 f4\s+add    \$0xfffffffff4332211,%rax,%r8
+\s*[a-f0-9]+:\s*62 f4 f4 10 ff c8    	dec    %rax,%r17
+\s*[a-f0-9]+:\s*62 9c 3c 18 fe 0c 27 	decb   \(%r31,%r12,1\),%r8b
+\s*[a-f0-9]+:\s*62 f4 f4 10 f7 d0    	not    %rax,%r17
+\s*[a-f0-9]+:\s*62 9c 3c 18 f6 14 27 	notb   \(%r31,%r12,1\),%r8b
+\s*[a-f0-9]+:\s*62 f4 f4 10 f7 d8    	neg    %rax,%r17
+\s*[a-f0-9]+:\s*62 9c 3c 18 f6 1c 27 	negb   \(%r31,%r12,1\),%r8b
+\s*[a-f0-9]+:\s*62 7c 6c 10 28 f9    	sub    %r15b,%r17b,%r18b
+\s*[a-f0-9]+:\s*62 54 6c 10 29 38    	sub    %r15d,\(%r8\),%r18d
+\s*[a-f0-9]+:\s*62 c4 3c 18 2a 04 07 	sub    \(%r15,%rax,1\),%r16b,%r8b
+\s*[a-f0-9]+:\s*62 c4 3d 18 2b 04 07 	sub    \(%r15,%rax,1\),%r16w,%r8w
+\s*[a-f0-9]+:\s*62 fc 5c 10 83 2c 83 11 	subl   \$0x11,\(%r19,%rax,4\),%r20d
+\s*[a-f0-9]+:\s*62 f4 0d 10 81 e8 34 12 	sub    \$0x1234,%ax,%r30w
+\s*[a-f0-9]+:\s*62 7c 6c 10 18 f9    	sbb    %r15b,%r17b,%r18b
+\s*[a-f0-9]+:\s*62 54 6c 10 19 38    	sbb    %r15d,\(%r8\),%r18d
+\s*[a-f0-9]+:\s*62 c4 3c 18 1a 04 07 	sbb    \(%r15,%rax,1\),%r16b,%r8b
+\s*[a-f0-9]+:\s*62 c4 3d 18 1b 04 07 	sbb    \(%r15,%rax,1\),%r16w,%r8w
+\s*[a-f0-9]+:\s*62 fc 5c 10 83 1c 83 11 	sbbl   \$0x11,\(%r19,%rax,4\),%r20d
+\s*[a-f0-9]+:\s*62 f4 0d 10 81 d8 34 12 	sbb    \$0x1234,%ax,%r30w
+\s*[a-f0-9]+:\s*62 7c 6c 10 10 f9    	adc    %r15b,%r17b,%r18b
+\s*[a-f0-9]+:\s*62 54 6c 10 11 38    	adc    %r15d,\(%r8\),%r18d
+\s*[a-f0-9]+:\s*62 c4 3c 18 12 04 07 	adc    \(%r15,%rax,1\),%r16b,%r8b
+\s*[a-f0-9]+:\s*62 c4 3d 18 13 04 07 	adc    \(%r15,%rax,1\),%r16w,%r8w
+\s*[a-f0-9]+:\s*62 fc 5c 10 83 14 83 11 	adcl   \$0x11,\(%r19,%rax,4\),%r20d
+\s*[a-f0-9]+:\s*62 f4 0d 10 81 d0 34 12 	adc    \$0x1234,%ax,%r30w
+\s*[a-f0-9]+:\s*62 7c 6c 10 08 f9    	or     %r15b,%r17b,%r18b
+\s*[a-f0-9]+:\s*62 54 6c 10 09 38    	or     %r15d,\(%r8\),%r18d
+\s*[a-f0-9]+:\s*62 c4 3c 18 0a 04 07 	or     \(%r15,%rax,1\),%r16b,%r8b
+\s*[a-f0-9]+:\s*62 c4 3d 18 0b 04 07 	or     \(%r15,%rax,1\),%r16w,%r8w
+\s*[a-f0-9]+:\s*62 fc 5c 10 83 0c 83 11 	orl    \$0x11,\(%r19,%rax,4\),%r20d
+\s*[a-f0-9]+:\s*62 f4 0d 10 81 c8 34 12 	or     \$0x1234,%ax,%r30w
+\s*[a-f0-9]+:\s*62 7c 6c 10 30 f9    	xor    %r15b,%r17b,%r18b
+\s*[a-f0-9]+:\s*62 54 6c 10 31 38    	xor    %r15d,\(%r8\),%r18d
+\s*[a-f0-9]+:\s*62 c4 3c 18 32 04 07 	xor    \(%r15,%rax,1\),%r16b,%r8b
+\s*[a-f0-9]+:\s*62 c4 3d 18 33 04 07 	xor    \(%r15,%rax,1\),%r16w,%r8w
+\s*[a-f0-9]+:\s*62 fc 5c 10 83 34 83 11 	xorl   \$0x11,\(%r19,%rax,4\),%r20d
+\s*[a-f0-9]+:\s*62 f4 0d 10 81 f0 34 12 	xor    \$0x1234,%ax,%r30w
+\s*[a-f0-9]+:\s*62 7c 6c 10 20 f9    	and    %r15b,%r17b,%r18b
+\s*[a-f0-9]+:\s*62 54 6c 10 21 38    	and    %r15d,\(%r8\),%r18d
+\s*[a-f0-9]+:\s*62 c4 3c 18 22 04 07 	and    \(%r15,%rax,1\),%r16b,%r8b
+\s*[a-f0-9]+:\s*62 c4 3d 18 23 04 07 	and    \(%r15,%rax,1\),%r16w,%r8w
+\s*[a-f0-9]+:\s*62 fc 5c 10 83 24 83 11 	andl   \$0x11,\(%r19,%rax,4\),%r20d
+\s*[a-f0-9]+:\s*62 f4 0d 10 81 e0 34 12 	and    \$0x1234,%ax,%r30w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 08    	rorb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 cc 02 	ror    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 08 02 	rorl   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 08    	rorw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 c8    	ror    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 0c 83 	rorw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 00    	rolb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 c4 02 	rol    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 00 02 	roll   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 00    	rolw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 c0    	rol    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 04 83 	rolw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 18    	rcrb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 dc 02 	rcr    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 18 02 	rcrl   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 18    	rcrw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 d8    	rcr    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 1c 83 	rcrw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 10    	rclb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 d4 02 	rcl    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 10 02 	rcll   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 10    	rclw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 d0    	rcl    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 14 83 	rclw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 20    	shlb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 e4 02 	shl    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 20 02 	shll   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 20    	shlw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 e0    	shl    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 24 83 	shlw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 38    	sarb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 fc 02 	sar    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 38 02 	sarl   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 38    	sarw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 f8    	sar    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 3c 83 	sarw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 20    	shlb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 e4 02 	shl    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 20 02 	shll   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 20    	shlw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 e0    	shl    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 24 83 	shlw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 f4 04 10 d0 28    	shrb   \(%rax\),%r31b
+\s*[a-f0-9]+:\s*62 d4 04 10 c0 ec 02 	shr    \$0x2,%r12b,%r31b
+\s*[a-f0-9]+:\s*62 f4 04 10 c1 28 02 	shrl   \$0x2,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 f4 05 10 d1 28    	shrw   \(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 fc 3c 18 d2 e8    	shr    %cl,%r16b,%r8b
+\s*[a-f0-9]+:\s*62 fc 05 10 d3 2c 83 	shrw   %cl,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 74 84 10 24 20 01 	shld   \$0x1,%r12,\(%rax\),%r31
+\s*[a-f0-9]+:\s*62 54 05 10 24 c4 02 	shld   \$0x2,%r8w,%r12w,%r31w
+\s*[a-f0-9]+:\s*62 74 04 10 24 38 02 	shld   \$0x2,%r15d,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 74 05 10 a5 08    	shld   %cl,%r9w,\(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 7c bc 18 a5 e0\s+shld   %cl,%r12,%r16,%r8
+\s*[a-f0-9]+:\s*62 7c 05 10 a5 2c 83\s+shld   %cl,%r13w,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 74 84 10 2c 20 01 	shrd   \$0x1,%r12,\(%rax\),%r31
+\s*[a-f0-9]+:\s*62 54 05 10 2c c4 02 	shrd   \$0x2,%r8w,%r12w,%r31w
+\s*[a-f0-9]+:\s*62 74 04 10 2c 38 02 	shrd   \$0x2,%r15d,\(%rax\),%r31d
+\s*[a-f0-9]+:\s*62 74 05 10 ad 08\s+shrd   %cl,%r9w,\(%rax\),%r31w
+\s*[a-f0-9]+:\s*62 7c bc 18 ad e0\s+shrd   %cl,%r12,%r16,%r8
+\s*[a-f0-9]+:\s*62 7c 05 10 ad 2c 83\s+shrd   %cl,%r13w,\(%r19,%rax,4\),%r31w
+\s*[a-f0-9]+:\s*62 54 6d 10 66 c7    	adcx   %r15d,%r8d,%r18d
+\s*[a-f0-9]+:\s*62 14 69 10 66 04 3f 	adcx   \(%r15,%r31,1\),%r8d,%r18d
+\s*[a-f0-9]+:\s*62 14 f9 08 66 04 3f 	adcx   \(%r15,%r31,1\),%r8
+\s*[a-f0-9]+:\s*62 54 6e 10 66 c7    	adox   %r15d,%r8d,%r18d
+\s*[a-f0-9]+:\s*62 14 6a 10 66 04 3f 	adox   \(%r15,%r31,1\),%r8d,%r18d
+\s*[a-f0-9]+:\s*62 14 fa 08 66 04 3f 	adox   \(%r15,%r31,1\),%r8
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 40 90 90 90 90 90 	cmovo  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 41 90 90 90 90 90 	cmovno -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 42 90 90 90 90 90 	cmovb  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 43 90 90 90 90 90 	cmovae -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 44 90 90 90 90 90 	cmove  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 45 90 90 90 90 90 	cmovne -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 46 90 90 90 90 90 	cmovbe -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 47 90 90 90 90 90 	cmova  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 48 90 90 90 90 90 	cmovs  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 49 90 90 90 90 90 	cmovns -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 4a 90 90 90 90 90 	cmovp  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 4b 90 90 90 90 90 	cmovnp -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 4c 90 90 90 90 90 	cmovl  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 4d 90 90 90 90 90 	cmovge -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 4e 90 90 90 90 90 	cmovle -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 4f 90 90 90 90 90 	cmovg  -0x6f6f6f70\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*67 62 f4 3c 18 af 90 09 09 09 00 	imul   0x90909\(%eax\),%edx,%r8d
+\s*[a-f0-9]+:\s*62 b4 b0 10 af 94 f8 09 09 00 00 	imul   0x909\(%rax,%r31,8\),%rdx,%r25
+\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+inc    %rax
+\s*[a-f0-9]+:\s*62 f4 ec\s+\(bad\)
+\s*[a-f0-9]+:\s*08 ff\s+or     %bh,%bh
+\s*[a-f0-9]+:\s*c0\s+\.byte 0xc0
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd.s b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
new file mode 100644
index 00000000000..8c86989ffe5
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
@@ -0,0 +1,156 @@
+# Check 64bit APX NDD instructions with evex prefix encoding
+
+	.allow_index_reg
+	.text
+_start:
+inc    %rax,%rbx
+inc    %r31,%r8
+inc    %r31,%r16
+add    %r31b,%r8b,%r16b
+addb    %r31b,%r8b,%r16b
+add    %r31,%r8,%r16
+addq    %r31,%r8,%r16
+add    %r31d,%r8d,%r16d
+addl    %r31d,%r8d,%r16d
+add    %r31w,%r8w,%r16w
+addw    %r31w,%r8w,%r16w
+{store} add    %r31,%r8,%r16
+{load}  add    %r31,%r8,%r16
+add    %r31,(%r8),%r16
+add    (%r31),%r8,%r16
+add    0x9090(%r31,%r16,1),%r8,%r16
+add    %r31,(%r8,%r16,8),%r16
+add    $0x34,%r13b,%r17b
+addl   $0x11,(%r19,%rax,4),%r20d
+add    $0x1234,%ax,%r30w
+add    $0x12344433,%r15,%r16
+addq   $0x12344433,(%r15,%rcx,4),%r16
+add    $0xfffffffff4332211,%rax,%r8
+dec    %rax,%r17
+decb   (%r31,%r12,1),%r8b
+not    %rax,%r17
+notb   (%r31,%r12,1),%r8b
+neg    %rax,%r17
+negb   (%r31,%r12,1),%r8b
+sub    %r15b,%r17b,%r18b
+sub    %r15d,(%r8),%r18d
+sub    (%r15,%rax,1),%r16b,%r8b
+sub    (%r15,%rax,1),%r16w,%r8w
+subl   $0x11,(%r19,%rax,4),%r20d
+sub    $0x1234,%ax,%r30w
+sbb    %r15b,%r17b,%r18b
+sbb    %r15d,(%r8),%r18d
+sbb    (%r15,%rax,1),%r16b,%r8b
+sbb    (%r15,%rax,1),%r16w,%r8w
+sbbl   $0x11,(%r19,%rax,4),%r20d
+sbb    $0x1234,%ax,%r30w
+adc    %r15b,%r17b,%r18b
+adc    %r15d,(%r8),%r18d
+adc    (%r15,%rax,1),%r16b,%r8b
+adc    (%r15,%rax,1),%r16w,%r8w
+adcl   $0x11,(%r19,%rax,4),%r20d
+adc    $0x1234,%ax,%r30w
+or     %r15b,%r17b,%r18b
+or     %r15d,(%r8),%r18d
+or     (%r15,%rax,1),%r16b,%r8b
+or     (%r15,%rax,1),%r16w,%r8w
+orl    $0x11,(%r19,%rax,4),%r20d
+or     $0x1234,%ax,%r30w
+xor    %r15b,%r17b,%r18b
+xor    %r15d,(%r8),%r18d
+xor    (%r15,%rax,1),%r16b,%r8b
+xor    (%r15,%rax,1),%r16w,%r8w
+xorl   $0x11,(%r19,%rax,4),%r20d
+xor    $0x1234,%ax,%r30w
+and    %r15b,%r17b,%r18b
+and    %r15d,(%r8),%r18d
+and    (%r15,%rax,1),%r16b,%r8b
+and    (%r15,%rax,1),%r16w,%r8w
+andl   $0x11,(%r19,%rax,4),%r20d
+and    $0x1234,%ax,%r30w
+rorb   (%rax),%r31b
+ror    $0x2,%r12b,%r31b
+rorl   $0x2,(%rax),%r31d
+rorw   (%rax),%r31w
+ror    %cl,%r16b,%r8b
+rorw   %cl,(%r19,%rax,4),%r31w
+rolb   (%rax),%r31b
+rol    $0x2,%r12b,%r31b
+roll   $0x2,(%rax),%r31d
+rolw   (%rax),%r31w
+rol    %cl,%r16b,%r8b
+rolw   %cl,(%r19,%rax,4),%r31w
+rcrb   (%rax),%r31b
+rcr    $0x2,%r12b,%r31b
+rcrl   $0x2,(%rax),%r31d
+rcrw   (%rax),%r31w
+rcr    %cl,%r16b,%r8b
+rcrw   %cl,(%r19,%rax,4),%r31w
+rclb   (%rax),%r31b
+rcl    $0x2,%r12b,%r31b
+rcll   $0x2,(%rax),%r31d
+rclw   (%rax),%r31w
+rcl    %cl,%r16b,%r8b
+rclw   %cl,(%r19,%rax,4),%r31w
+shlb   (%rax),%r31b
+shl    $0x2,%r12b,%r31b
+shll   $0x2,(%rax),%r31d
+shlw   (%rax),%r31w
+shl    %cl,%r16b,%r8b
+shlw   %cl,(%r19,%rax,4),%r31w
+sarb   (%rax),%r31b
+sar    $0x2,%r12b,%r31b
+sarl   $0x2,(%rax),%r31d
+sarw   (%rax),%r31w
+sar    %cl,%r16b,%r8b
+sarw   %cl,(%r19,%rax,4),%r31w
+shlb   (%rax),%r31b
+shl    $0x2,%r12b,%r31b
+shll   $0x2,(%rax),%r31d
+shlw   (%rax),%r31w
+shl    %cl,%r16b,%r8b
+shlw   %cl,(%r19,%rax,4),%r31w
+shrb   (%rax),%r31b
+shr    $0x2,%r12b,%r31b
+shrl   $0x2,(%rax),%r31d
+shrw   (%rax),%r31w
+shr    %cl,%r16b,%r8b
+shrw   %cl,(%r19,%rax,4),%r31w
+shld   $0x1,%r12,(%rax),%r31
+shld   $0x2,%r8w,%r12w,%r31w
+shld   $0x2,%r15d,(%rax),%r31d
+shld   %cl,%r9w,(%rax),%r31w
+shld   %cl,%r12,%r16,%r8
+shld   %cl,%r13w,(%r19,%rax,4),%r31w
+shrd   $0x1,%r12,(%rax),%r31
+shrd   $0x2,%r8w,%r12w,%r31w
+shrd   $0x2,%r15d,(%rax),%r31d
+shrd   %cl,%r9w,(%rax),%r31w
+shrd   %cl,%r12,%r16,%r8
+shrd   %cl,%r13w,(%r19,%rax,4),%r31w
+adcx   %r15d,%r8d,%r18d
+adcx   (%r15,%r31,1),%r8d,%r18d
+adcx   (%r15,%r31,1),%r8
+adox   %r15d,%r8d,%r18d
+adox   (%r15,%r31,1),%r8d,%r18d
+adox   (%r15,%r31,1),%r8
+cmovo  0x90909090(%eax),%edx,%r8d
+cmovno 0x90909090(%eax),%edx,%r8d
+cmovb  0x90909090(%eax),%edx,%r8d
+cmovae 0x90909090(%eax),%edx,%r8d
+cmove  0x90909090(%eax),%edx,%r8d
+cmovne 0x90909090(%eax),%edx,%r8d
+cmovbe 0x90909090(%eax),%edx,%r8d
+cmova  0x90909090(%eax),%edx,%r8d
+cmovs  0x90909090(%eax),%edx,%r8d
+cmovns 0x90909090(%eax),%edx,%r8d
+cmovp  0x90909090(%eax),%edx,%r8d
+cmovnp 0x90909090(%eax),%edx,%r8d
+cmovl  0x90909090(%eax),%edx,%r8d
+cmovge 0x90909090(%eax),%edx,%r8d
+cmovle 0x90909090(%eax),%edx,%r8d
+cmovg  0x90909090(%eax),%edx,%r8d
+imul   0x90909(%eax),%edx,%r8d
+imul   0x909(%rax,%r31,8),%rdx,%r25
+.byte 0x62,0xf4,0xfc,0x08,0xff,0xc0  #inc %rax
+.byte 0x62,0xf4,0xec,0x08,0xff,0xc0  #bad
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d
index 8cc4040cb77..f6257c01792 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.d
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.d
@@ -137,6 +137,48 @@ Disassembly of section .text:
  +[a-f0-9]+:	33 07                	xor    \(%rdi\),%eax
  +[a-f0-9]+:	31 07                	xor    %eax,\(%rdi\)
  +[a-f0-9]+:	33 07                	xor    \(%rdi\),%eax
+ +[a-f0-9]+:	62 44 fc 10 01 38    	add    %r31,\(%r8\),%r16
+ +[a-f0-9]+:	62 44 fc 10 03 38    	add    \(%r8\),%r31,%r16
+ +[a-f0-9]+:	62 44 fc 10 01 38    	add    %r31,\(%r8\),%r16
+ +[a-f0-9]+:	62 44 fc 10 03 38    	add    \(%r8\),%r31,%r16
+ +[a-f0-9]+:	62 54 6c 10 29 38    	sub    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 2b 38    	sub    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 29 38    	sub    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 2b 38    	sub    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 19 38    	sbb    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 1b 38    	sbb    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 19 38    	sbb    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 1b 38    	sbb    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 21 38    	and    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 23 38    	and    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 21 38    	and    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 23 38    	and    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 09 38    	or     %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 0b 38    	or     \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 09 38    	or     %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 0b 38    	or     \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 31 38    	xor    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 33 38    	xor    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 31 38    	xor    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 33 38    	xor    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 11 38    	adc    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 13 38    	adc    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 54 6c 10 11 38    	adc    %r15d,\(%r8\),%r18d
+ +[a-f0-9]+:	62 54 6c 10 13 38    	adc    \(%r8\),%r15d,%r18d
+ +[a-f0-9]+:	62 44 fc 10 01 f8    	add    %r31,%r8,%r16
+ +[a-f0-9]+:	62 5c fc 10 03 c7    	add    %r31,%r8,%r16
+ +[a-f0-9]+:	62 7c 6c 10 28 f9    	sub    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 c4 6c 10 2a cf    	sub    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 7c 6c 10 18 f9    	sbb    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 c4 6c 10 1a cf    	sbb    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 7c 6c 10 20 f9    	and    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 c4 6c 10 22 cf    	and    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 7c 6c 10 08 f9    	or     %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 c4 6c 10 0a cf    	or     %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 7c 6c 10 30 f9    	xor    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 c4 6c 10 32 cf    	xor    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 7c 6c 10 10 f9    	adc    %r15b,%r17b,%r18b
+ +[a-f0-9]+:	62 c4 6c 10 12 cf    	adc    %r15b,%r17b,%r18b
  +[a-f0-9]+:	b0 12                	mov    \$0x12,%al
  +[a-f0-9]+:	b8 45 03 00 00       	mov    \$0x345,%eax
  +[a-f0-9]+:	b0 12                	mov    \$0x12,%al
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.s b/gas/testsuite/gas/i386/x86-64-pseudos.s
index eb25f2a8fbf..9f756e5ba04 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.s
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.s
@@ -134,6 +134,49 @@ _start:
 	{load} xor (%rdi), %eax
 	{store} xor %eax, (%rdi)
 	{store} xor (%rdi), %eax
+	{load}  add    %r31,(%r8),%r16
+	{load}	add    (%r8),%r31,%r16
+	{store} add    %r31,(%r8),%r16
+	{store}	add    (%r8),%r31,%r16
+	{load} 	sub    %r15d,(%r8),%r18d
+	{load}	sub    (%r8),%r15d,%r18d
+	{store} sub    %r15d,(%r8),%r18d
+	{store} sub    (%r8),%r15d,%r18d
+	{load} 	sbb    %r15d,(%r8),%r18d
+	{load}	sbb    (%r8),%r15d,%r18d
+	{store} sbb    %r15d,(%r8),%r18d
+	{store} sbb    (%r8),%r15d,%r18d
+	{load} 	and    %r15d,(%r8),%r18d
+	{load}	and    (%r8),%r15d,%r18d
+	{store} and    %r15d,(%r8),%r18d
+	{store} and    (%r8),%r15d,%r18d
+	{load} 	or     %r15d,(%r8),%r18d
+	{load}	or     (%r8),%r15d,%r18d
+	{store} or     %r15d,(%r8),%r18d
+	{store} or     (%r8),%r15d,%r18d
+	{load} 	xor    %r15d,(%r8),%r18d
+	{load}	xor    (%r8),%r15d,%r18d
+	{store} xor    %r15d,(%r8),%r18d
+	{store} xor    (%r8),%r15d,%r18d
+	{load} 	adc    %r15d,(%r8),%r18d
+	{load}	adc    (%r8),%r15d,%r18d
+	{store} adc    %r15d,(%r8),%r18d
+	{store} adc    (%r8),%r15d,%r18d
+
+	{store} add    %r31,%r8,%r16
+	{load}  add    %r31,%r8,%r16
+	{store} sub    %r15b,%r17b,%r18b
+	{load}	sub    %r15b,%r17b,%r18b
+	{store}	sbb    %r15b,%r17b,%r18b
+	{load}	sbb    %r15b,%r17b,%r18b
+	{store}	and    %r15b,%r17b,%r18b
+	{load}	and    %r15b,%r17b,%r18b
+	{store}	or     %r15b,%r17b,%r18b
+	{load}	or     %r15b,%r17b,%r18b
+	{store}	xor    %r15b,%r17b,%r18b
+	{load}	xor    %r15b,%r17b,%r18b
+	{store}	adc    %r15b,%r17b,%r18b
+	{load}	adc    %r15b,%r17b,%r18b
 
 	.irp m, mov, adc, add, and, cmp, or, sbb, sub, test, xor
 	\m	$0x12, %al
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 46fb3681528..ca1583c6f88 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -367,6 +367,7 @@ run_dump_test "x86-64-apx-rex2-inval"
 run_dump_test "x86-64-apx-evex-promoted"
 run_dump_test "x86-64-apx-evex-promoted-intel"
 run_dump_test "x86-64-apx-evex-egpr"
+run_dump_test "x86-64-apx-ndd"
 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-prefix.h b/opcodes/i386-dis-evex-prefix.h
index f6f02de6c47..210783d7e88 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -353,8 +353,8 @@
   /* PREFIX_EVEX_MAP4_66 */
   {
     { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
-    { "adoxS",	{ Gdq, Edq }, 0 },
-    { "adcxS",	{ Gdq, Edq }, 0 },
+    { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
+    { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },
   },
   /* PREFIX_EVEX_MAP4_D8 */
   {
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index c3b4f083346..d00c2843e12 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -56,6 +56,105 @@
     { "blsmskS",	{ VexGdq, Edq }, 0 },
     { "blsiS",		{ VexGdq, Edq }, 0 },
   },
+  /* REG_EVEX_MAP4_80 */
+  {
+    { "addA",	{ VexGb, Eb, Ib }, 0 },
+    { "orA",	{ VexGb, Eb, Ib }, 0 },
+    { "adcA",	{ VexGb, Eb, Ib }, 0 },
+    { "sbbA",	{ VexGb, Eb, Ib }, 0 },
+    { "andA",	{ VexGb, Eb, Ib }, 0 },
+    { "subA",	{ VexGb, Eb, Ib }, 0 },
+    { "xorA",	{ VexGb, Eb, Ib }, 0 },
+    { Bad_Opcode },
+  },
+  /* REG_EVEX_MAP4_81 */
+  {
+    { "addQ",	{ VexGv, Ev, Iv }, 0 },
+    { "orQ",	{ VexGv, Ev, Iv }, 0 },
+    { "adcQ",	{ VexGv, Ev, Iv }, 0 },
+    { "sbbQ",	{ VexGv, Ev, Iv }, 0 },
+    { "andQ",	{ VexGv, Ev, Iv }, 0 },
+    { "subQ",	{ VexGv, Ev, Iv }, 0 },
+    { "xorQ",	{ VexGv, Ev, Iv }, 0 },
+    { Bad_Opcode },
+  },
+  /* REG_EVEX_MAP4_83 */
+  {
+    { "addQ",	{ VexGv, Ev, sIb }, 0 },
+    { "orQ",	{ VexGv, Ev, sIb }, 0 },
+    { "adcQ",	{ VexGv, Ev, sIb }, 0 },
+    { "sbbQ",	{ VexGv, Ev, sIb }, 0 },
+    { "andQ",	{ VexGv, Ev, sIb }, 0 },
+    { "subQ",	{ VexGv, Ev, sIb }, 0 },
+    { "xorQ",	{ VexGv, Ev, sIb }, 0 },
+    { Bad_Opcode },
+  },
+  /* REG_EVEX_MAP4_C0 */
+  {
+    { "rolA",	{ VexGb, Eb, Ib }, 0 },
+    { "rorA",	{ VexGb, Eb, Ib }, 0 },
+    { "rclA",	{ VexGb, Eb, Ib }, 0 },
+    { "rcrA",	{ VexGb, Eb, Ib }, 0 },
+    { "shlA",	{ VexGb, Eb, Ib }, 0 },
+    { "shrA",	{ VexGb, Eb, Ib }, 0 },
+    { "shlA",	{ VexGb, Eb, Ib }, 0 },
+    { "sarA",	{ VexGb, Eb, Ib }, 0 },
+  },
+  /* REG_EVEX_MAP4_C1 */
+  {
+    { "rolQ",	{ VexGv, Ev, Ib }, 0 },
+    { "rorQ",	{ VexGv, Ev, Ib }, 0 },
+    { "rclQ",	{ VexGv, Ev, Ib }, 0 },
+    { "rcrQ",	{ VexGv, Ev, Ib }, 0 },
+    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
+    { "shrQ",	{ VexGv, Ev, Ib }, 0 },
+    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
+    { "sarQ",	{ VexGv, Ev, Ib }, 0 },
+  },
+  /* REG_EVEX_MAP4_D0 */
+  {
+    { "rolA",	{ VexGb, Eb, I1 }, 0 },
+    { "rorA",	{ VexGb, Eb, I1 }, 0 },
+    { "rclA",	{ VexGb, Eb, I1 }, 0 },
+    { "rcrA",	{ VexGb, Eb, I1 }, 0 },
+    { "shlA",	{ VexGb, Eb, I1 }, 0 },
+    { "shrA",	{ VexGb, Eb, I1 }, 0 },
+    { "shlA",	{ VexGb, Eb, I1 }, 0 },
+    { "sarA",	{ VexGb, Eb, I1 }, 0 },
+  },
+  /* REG_EVEX_MAP4_D1 */
+  {
+    { "rolQ",	{ VexGv, Ev, I1 }, 0 },
+    { "rorQ",	{ VexGv, Ev, I1 }, 0 },
+    { "rclQ",	{ VexGv, Ev, I1 }, 0 },
+    { "rcrQ",	{ VexGv, Ev, I1 }, 0 },
+    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
+    { "shrQ",	{ VexGv, Ev, I1 }, 0 },
+    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
+    { "sarQ",	{ VexGv, Ev, I1 }, 0 },
+  },
+  /* REG_EVEX_MAP4_D2 */
+  {
+    { "rolA",	{ VexGb, Eb, CL }, 0 },
+    { "rorA",	{ VexGb, Eb, CL }, 0 },
+    { "rclA",	{ VexGb, Eb, CL }, 0 },
+    { "rcrA",	{ VexGb, Eb, CL }, 0 },
+    { "shlA",	{ VexGb, Eb, CL }, 0 },
+    { "shrA",	{ VexGb, Eb, CL }, 0 },
+    { "shlA",	{ VexGb, Eb, CL }, 0 },
+    { "sarA",	{ VexGb, Eb, CL }, 0 },
+  },
+  /* REG_EVEX_MAP4_D3 */
+  {
+    { "rolQ",	{ VexGv, Ev, CL }, 0 },
+    { "rorQ",	{ VexGv, Ev, CL }, 0 },
+    { "rclQ",	{ VexGv, Ev, CL }, 0 },
+    { "rcrQ",	{ VexGv, Ev, CL }, 0 },
+    { "shlQ",	{ VexGv, Ev, CL }, 0 },
+    { "shrQ",	{ VexGv, Ev, CL }, 0 },
+    { "shlQ",	{ VexGv, Ev, CL }, 0 },
+    { "sarQ",	{ VexGv, Ev, CL }, 0 },
+  },
   /* REG_EVEX_MAP4_D8_PREFIX_1 */
   {
     { "aesencwide128kl",	{ M }, 0 },
@@ -63,3 +162,27 @@
     { "aesencwide256kl",	{ M }, 0 },
     { "aesdecwide256kl",	{ M }, 0 },
   },
+  /* REG_EVEX_MAP4_F6 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "notA",	{ VexGb, Eb }, 0 },
+    { "negA",	{ VexGb, Eb }, 0 },
+  },
+  /* REG_EVEX_MAP4_F7 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "notQ",	{ VexGv, Ev }, 0 },
+    { "negQ",	{ VexGv, Ev }, 0 },
+  },
+  /* REG_EVEX_MAP4_FE */
+  {
+    { "incA",   { VexGb ,Eb }, 0 },
+    { "decA",   { VexGb ,Eb }, 0 },
+  },
+  /* REG_EVEX_MAP4_FF */
+  {
+    { "incQ",   { VexGv ,Ev }, 0 },
+    { "decQ",   { VexGv ,Ev }, 0 },
+  },
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 2a8c80c5200..1787be6dbf0 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -875,64 +875,64 @@ static const struct dis386 evex_table[][256] = {
   /* EVEX_MAP4_ */
   {
     /* 00 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "addB",             { VexGb, Eb, Gb }, 0  },
+    { "addS",             { VexGv, Ev, Gv }, 0 },
+    { "addB",             { VexGb, Gb, EbS }, 0 },
+    { "addS",             { VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 08 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "orB",		{ VexGb, Eb, Gb }, 0 },
+    { "orS",		{ VexGv, Ev, Gv }, 0 },
+    { "orB",		{ VexGb, Gb, EbS }, 0 },
+    { "orS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 10 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "adcB",		{ VexGb, Eb, Gb }, 0 },
+    { "adcS",		{ VexGv, Ev, Gv }, 0 },
+    { "adcB",		{ VexGb, Gb, EbS }, 0 },
+    { "adcS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 18 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "sbbB",		{ VexGb, Eb, Gb }, 0 },
+    { "sbbS",		{ VexGv, Ev, Gv }, 0 },
+    { "sbbB",		{ VexGb, Gb, EbS }, 0 },
+    { "sbbS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 20 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "andB",		{ VexGb, Eb, Gb }, 0 },
+    { "andS",		{ VexGv, Ev, Gv }, 0 },
+    { "andB",		{ VexGb, Gb, EbS }, 0 },
+    { "andS",		{ VexGv, Gv, EvS }, 0 },
+    { "shldS",		{ VexGv, Ev, Gv, Ib }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 28 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "subB",		{ VexGb, Eb, Gb }, 0 },
+    { "subS",		{ VexGv, Ev, Gv }, 0 },
+    { "subB",		{ VexGb, Gb, EbS }, 0 },
+    { "subS",		{ VexGv, Gv, EvS }, 0 },
+    { "shrdS",		{ VexGv, Ev, Gv, Ib }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 30 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "xorB",		{ VexGb, Eb, Gb }, 0 },
+    { "xorS",		{ VexGv, Ev, Gv }, 0 },
+    { "xorB",		{ VexGb, Gb, EbS }, 0 },
+    { "xorS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -947,23 +947,23 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 40 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "cmovoS",		{ VexGv, Gv, Ev }, 0 },
+    { "cmovnoS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmovbS",		{ VexGv, Gv, Ev }, 0 },
+    { "cmovaeS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmoveS",		{ VexGv, Gv, Ev }, 0 },
+    { "cmovneS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmovbeS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmovaS",		{ VexGv, Gv, Ev }, 0 },
     /* 48 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "cmovsS",		{ VexGv, Gv, Ev }, 0 },
+    { "cmovnsS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmovpS",		{ VexGv, Gv, Ev }, 0 },
+    { "cmovnpS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmovlS",		{ VexGv, Gv, Ev }, 0 },
+    { "cmovgeS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmovleS",	{ VexGv, Gv, Ev }, 0 },
+    { "cmovgS",		{ VexGv, Gv, Ev }, 0 },
     /* 50 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1019,10 +1019,10 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 80 */
+    { REG_TABLE (REG_EVEX_MAP4_80) },
+    { REG_TABLE (REG_EVEX_MAP4_81) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { REG_TABLE (REG_EVEX_MAP4_83) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1060,7 +1060,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { "shldS",		{ VexGv, Ev, Gv, CL }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     /* A8 */
@@ -1069,9 +1069,9 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
+    { "shrdS",		{ VexGv, Ev, Gv, CL }, 0 },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "imulS",		{ VexGv, Gv, Ev }, 0 },
     /* B0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1091,8 +1091,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* C0 */
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { REG_TABLE (REG_EVEX_MAP4_C0) },
+    { REG_TABLE (REG_EVEX_MAP4_C1) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1109,10 +1109,10 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* D0 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { REG_TABLE (REG_EVEX_MAP4_D0) },
+    { REG_TABLE (REG_EVEX_MAP4_D1) },
+    { REG_TABLE (REG_EVEX_MAP4_D2) },
+    { REG_TABLE (REG_EVEX_MAP4_D3) },
     { "sha1rnds4", { XM, EXxmm, Ib }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1151,8 +1151,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { REG_TABLE (REG_EVEX_MAP4_F6) },
+    { REG_TABLE (REG_EVEX_MAP4_F7) },
     /* F8 */
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_F8) },
     { MOD_TABLE (MOD_EVEX_MAP4_F9) },
@@ -1160,8 +1160,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_FC) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { REG_TABLE (REG_EVEX_MAP4_FE) },
+    { REG_TABLE (REG_EVEX_MAP4_FF) },
   },
   /* EVEX_MAP5_ */
   {
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index c8f3cfb8149..c702fd9e756 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -571,6 +571,8 @@ fetch_error (const instr_info *ins)
 #define VexGatherD { OP_VEX, vex_vsib_d_w_dq_mode }
 #define VexGatherQ { OP_VEX, vex_vsib_q_w_dq_mode }
 #define VexGdq { OP_VEX, dq_mode }
+#define VexGb { OP_VEX, b_mode }
+#define VexGv { OP_VEX, v_mode }
 #define VexTmm { OP_VEX, tmm_mode }
 #define XMVexI4 { OP_REG_VexI4, x_mode }
 #define XMVexScalarI4 { OP_REG_VexI4, scalar_mode }
@@ -883,7 +885,20 @@ enum
   REG_EVEX_0F38C6_L_2,
   REG_EVEX_0F38C7_L_2,
   REG_EVEX_0F38F3_L_0,
-  REG_EVEX_MAP4_D8_PREFIX_1
+  REG_EVEX_MAP4_80,
+  REG_EVEX_MAP4_81,
+  REG_EVEX_MAP4_83,
+  REG_EVEX_MAP4_C0,
+  REG_EVEX_MAP4_C1,
+  REG_EVEX_MAP4_D0,
+  REG_EVEX_MAP4_D1,
+  REG_EVEX_MAP4_D2,
+  REG_EVEX_MAP4_D3,
+  REG_EVEX_MAP4_D8_PREFIX_1,
+  REG_EVEX_MAP4_F6,
+  REG_EVEX_MAP4_F7,
+  REG_EVEX_MAP4_FE,
+  REG_EVEX_MAP4_FF,
 };
 
 enum
@@ -9070,6 +9085,14 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	  ins->rex &= ~REX_B;
 	  ins->rex2 &= ~REX_R;
 	}
+      if (ins->evex_type == evex_from_legacy)
+	{
+	  if (ins->vex.ll || ins->vex.zeroing
+	      || (!ins->vex.b && (ins->vex.register_specifier
+				  || !ins->vex.v)))
+	    return &bad_opcode;
+	  ins->rex |= REX_OPCODE;
+	}
 
       ins->need_vex = 4;
       ins->codep++;
@@ -9080,7 +9103,7 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	return &err_opcode;
 
       /* Set vector length.  */
-      if (ins->modrm.mod == 3 && ins->vex.b)
+      if (ins->modrm.mod == 3 && ins->vex.b && ins->evex_type == evex_default)
 	ins->vex.length = 512;
       else
 	{
@@ -10994,7 +11017,7 @@ print_displacement (instr_info *ins, bfd_signed_vma val)
 static void
 intel_operand_size (instr_info *ins, int bytemode, int sizeflag)
 {
-  if (ins->vex.b)
+  if (ins->vex.b && ins->evex_type != evex_from_legacy)
     {
       if (!ins->vex.no_broadcast)
 	switch (bytemode)
@@ -11928,7 +11951,8 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
 	ins->vex.no_broadcast = true;
 
       if (!ins->vex.no_broadcast
-	  && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used)))
+	  && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used))
+	  && ins->evex_type == evex_default)
 	{
 	  if (bytemode == xh_mode)
 	    {
@@ -13280,6 +13304,14 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED)
   if (!ins->need_vex)
     return true;
 
+  if (ins->evex_type == evex_from_legacy)
+    {
+      if (ins->vex.b)
+	ins->evex_used |= EVEX_b_used;
+      else
+	 return true;
+    }
+
   reg = ins->vex.register_specifier;
   ins->vex.register_specifier = 0;
   if (ins->address_mode != mode_64bit)
@@ -13371,12 +13403,19 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED)
 	  names = att_names_xmm;
 	  ins->evex_used |= EVEX_len_used;
 	  break;
+	case v_mode:
 	case dq_mode:
 	  if (ins->rex & REX_W)
 	    names = att_names64;
+	  else if (bytemode == v_mode
+		   && !(sizeflag & DFLAG))
+	    names = att_names16;
 	  else
 	    names = att_names32;
 	  break;
+	case b_mode:
+	  names = att_names8rex;
+	  break;
 	case mask_bd_mode:
 	case mask_mode:
 	  if (reg > 0x7)
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 9dd5625f54d..f36a8da5cbe 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -960,6 +960,7 @@ typedef struct insn_template
 /* The next value is arbitrary, as long as it's non-zero and distinct
    from all other values above.  */
 #define Opcode_VexW	0xf /* Operand order controlled by VEX.W. */
+#define Opcode_APX_NDDD	0x11 /* Direction bit for APX NDD insns. */
 
   /* how many operands */
   unsigned int operands:3;
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 791a9fe0177..4bb0c9f4906 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -286,17 +286,25 @@ add, 0x0, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg3
 add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 add, 0x4, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 add, 0x80/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+add, 0x0, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+add, 0x83/0, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+add, 0x80/0, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
 
 inc, 0x40, No64, No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32 }
 inc, 0xfe/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+inc, 0xfe/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, {Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
 
 sub, 0x28, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sub, 0x83/5, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 sub, 0x2c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 sub, 0x80/5, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sub, 0x28, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64, }
+sub, 0x83/5, APX_F|x64, Modrm|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+sub, 0x80/5, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 dec, 0x48, No64, No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32 }
 dec, 0xfe/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+dec, 0xfe/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 sbb, 0x18, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sbb, 0x83/3, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -305,6 +313,9 @@ sbb, 0x80/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|R
 sbb, 0x18, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sbb, 0x83/3, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 sbb, 0x80/3, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sbb, 0x18, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sbb, 0x83/3, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+sbb, 0x80/3, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 cmp, 0x38, 0, D|W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 cmp, 0x83/7, 0, Modrm|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -319,16 +330,25 @@ and, 0x20, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|
 and, 0x83/4, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 and, 0x24, 0, W|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 and, 0x80/4, 0, W|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+and, 0x20, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+and, 0x83/4, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+and, 0x80/4, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 or, 0x8, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 or, 0x83/1, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 or, 0xc, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 or, 0x80/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+or, 0x8, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+or, 0x83/1, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+or, 0x80/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 xor, 0x30, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 xor, 0x83/6, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 xor, 0x34, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 xor, 0x80/6, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+xor, 0x30, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+xor, 0x83/6, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+xor, 0x80/6, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 // clr with 1 operand is really xor with 2 operands.
 clr, 0x30, 0, W|Modrm|No_sSuf|RegKludge|Optimize, { Reg8|Reg16|Reg32|Reg64 }
@@ -340,11 +360,16 @@ adc, 0x80/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|R
 adc, 0x10, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 adc, 0x83/2, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 adc, 0x80/2, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+adc, 0x10, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+adc, 0x83/2, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+adc, 0x80/2, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+neg, 0xf6/3, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+not, 0xf6/2, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 aaa, 0x37, No64, NoSuf, {}
 aas, 0x3f, No64, NoSuf, {}
@@ -378,6 +403,7 @@ cqto, 0x99, x64, Size64|NoSuf, {}
 mul, 0xf6/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 imul, 0xf6/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 imul, 0xfaf, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64 }
+imul, 0xaf, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 imul, 0x6b, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 imul, 0x69, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 // imul with 2 operands mimics imul with 3 by putting the register in
@@ -395,11 +421,19 @@ rol, 0xd0/0, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|
 rol, 0xc0/0, i186, W|Modrm|No_sSuf, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rol, 0xd2/0, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rol, 0xd0/0, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rol, 0xc0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rol, 0xd2/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 ror, 0xd0/1, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ror, 0xc0/1, i186, W|Modrm|No_sSuf, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ror, 0xd2/1, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ror, 0xd0/1, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+ror, 0xc0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+ror, 0xd2/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 rcl, 0xd0/2, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcl, 0xc0/2, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -409,6 +443,10 @@ rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg
 rcl, 0xc0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcl, 0xd2/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rcl, 0xc0/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rcl, 0xd2/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rcl, 0xd0/2, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 rcr, 0xd0/3, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcr, 0xc0/3, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -418,34 +456,60 @@ rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg
 rcr, 0xc0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcr, 0xd2/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rcr, 0xc0/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rcr, 0xd2/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rcr, 0xd0/3, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 sal, 0xd0/4, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sal, 0xc0/4, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sal, 0xd2/4, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sal, 0xd0/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sal, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sal, 0xc0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sal, 0xd2/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sal, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 shl, 0xd0/4, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shl, 0xc0/4, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shl, 0xd2/4, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shl, 0xd0/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shl, 0xc0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shl, 0xd2/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 shr, 0xd0/5, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shr, 0xc0/5, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shr, 0xd2/5, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shr, 0xd0/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shr, 0xc0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shr, 0xd2/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 sar, 0xd0/7, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sar, 0xc0/7, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sar, 0xd2/7, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sar, 0xd0/7, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sar, 0xc0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sar, 0xd2/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 shld, 0xfa4, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shld, 0xfa5, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shld, 0xfa5, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shld, 0x24, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 shrd, 0xfac, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shrd, 0xfad, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shrd, 0xfad, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shrd, 0x2c, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // Control transfer instructions.
 call, 0xe8, No64, JumpDword|DefaultSize|No_bSuf|No_sSuf|No_qSuf|BNDPrefixOk, { Disp16|Disp32 }
@@ -951,6 +1015,7 @@ ud2b, 0xfb9, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|U
 ud0, 0xfff, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 cmov<cc>, 0xf4<cc:opc>, CMOV, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmov<cc>, 0x4<cc:opc>, CMOV|APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 
 fcmovb, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
 fcmovnae, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
@@ -2044,8 +2109,10 @@ xstore, 0xfa7c0, PadLock, NoSuf|RepPrefixOk, {}
 // Multy-precision Add Carry, rdseed instructions.
 adcx, 0x660f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 adcx, 0x6666, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+adcx, 0x6666, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 adox, 0xf30f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 adox, 0xf366, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+adox, 0xf366, ADX|APX_F|x64, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 rdseed, 0xfc7/7, RdSeed, Modrm|NoSuf, { Reg16|Reg32|Reg64 }
 
 // SMAP instructions.
-- 
2.25.1


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

* [PATCH 5/8] Support APX NDD optimized encoding.
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
                   ` (3 preceding siblings ...)
  2023-09-19 15:25 ` [PATCH 4/8] Support APX NDD Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-28  9:29   ` Jan Beulich
  2023-09-19 15:25 ` [PATCH 6/8] Support APX Push2/Pop2 Cui, Lili
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, Hu, Lin1

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

This patch aims to optimize:

add %r16, %r15, %r15 -> add %r16, %r15

gas/ChangeLog:

	* config/tc-i386.c (optimize_NDD_to_nonNDD): New function.
	(match_template): If we can optimzie APX NDD insns, so rematch
	template.
	* testsuite/gas/i386/x86-64.exp: Add test.
	* testsuite/gas/i386/x86-64-apx-ndd-optimize.d: New test.
	* testsuite/gas/i386/x86-64-apx-ndd-optimize.s: Ditto.
---
 gas/config/tc-i386.c                          |  49 +++++++
 .../gas/i386/x86-64-apx-ndd-optimize.d        | 120 ++++++++++++++++++
 .../gas/i386/x86-64-apx-ndd-optimize.s        | 115 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64.exp             |   1 +
 4 files changed, 285 insertions(+)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 381e389bb04..fba97ae37d8 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
   return 0;
 }
 
+/* Optimize APX NDD insns to non-NDD insns.  */
+
+static int
+optimize_NDD_to_nonNDD (const insn_template *t)
+{
+  if (t->opcode_modifier.vexvvvv
+      && t->opcode_space == SPACE_EVEXMAP4
+      && i.reg_operands >= 2
+      && (i.types[i.operands - 1].bitfield.dword
+	  || i.types[i.operands - 1].bitfield.qword))
+    {
+      int tmp_flag = -1;
+      int dest = i.operands - 1;
+      int src1 = (i.operands > 2) ? i.operands - 2 : 0;
+      int src2 = (i.operands > 3) ? i.operands - 3 : 0;
+
+      if (i.op[src1].regs == i.op[dest].regs)
+	tmp_flag = src2;
+      /* adcx and adox don't have D bit.  */
+      else if (i.op[src2].regs == i.op[dest].regs
+	       && (t->opcode_modifier.d
+		   || t->mnem_off == MN_adcx
+		   || t->mnem_off == MN_adox)
+	       && (t->mnem_off != MN_sub)
+	       && (t->mnem_off != MN_sbb))
+	tmp_flag = src1;
+      if (tmp_flag != -1)
+	{
+	  --i.operands;
+	  --i.reg_operands;
+	  --i.tm.operands;
+
+	  if (tmp_flag != src2)
+	      swap_2_operands (tmp_flag, src2);
+	  return 1;
+	}
+    }
+  return 0;
+}
+
 /* Helper function for the progress() macro in match_template().  */
 static INLINE enum i386_error progress (enum i386_error new,
 					enum i386_error last,
@@ -7562,6 +7602,15 @@ match_template (char mnem_suffix)
 	     slip through to break.  */
 	}
 
+      /* If we can optimize a NDD insn to non-NDD insn, like
+	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
+      if (optimize_NDD_to_nonNDD (t))
+	{
+	  t = current_templates->start;
+	  --t;
+	  continue;
+	}
+
       /* Check if VEX/EVEX encoding requirements can be satisfied.  */
       if (VEX_check_encoding (t))
 	{
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
new file mode 100644
index 00000000000..173b368da71
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
@@ -0,0 +1,120 @@
+#objdump: -drw
+#name: x86-64 APX NDD optimized encoding
+#source: x86-64-apx-ndd-optimize.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 7d 18 ff c0\s+inc\s+%ax,%ax
+\s*[a-f0-9]+:\s*ff c0\s+inc\s+%eax
+\s*[a-f0-9]+:\s*48 ff c0\s+inc\s+%rax
+\s*[a-f0-9]+:\s*d5 18 ff c0\s+inc\s+%r16
+\s*[a-f0-9]+:\s*62 44 3c 18 00 f8\s+add\s+%r31b,%r8b,%r8b
+\s*[a-f0-9]+:\s*62 44 04 10 00 f8\s+add\s+%r31b,%r8b,%r31b
+\s*[a-f0-9]+:\s*62 44 3c 18 00 f8\s+add\s+%r31b,%r8b,%r8b
+\s*[a-f0-9]+:\s*d5 4d 01 f8\s+add\s+%r31,%r8
+\s*[a-f0-9]+:\s*d5 4d 01 f8\s+add\s+%r31,%r8
+\s*[a-f0-9]+:\s*d5 45 01 f8\s+add\s+%r31d,%r8d
+\s*[a-f0-9]+:\s*d5 45 01 f8\s+add\s+%r31d,%r8d
+\s*[a-f0-9]+:\s*62 44 3d 18 01 f8\s+add\s+%r31w,%r8w,%r8w
+\s*[a-f0-9]+:\s*62 44 3d 18 01 f8\s+add\s+%r31w,%r8w,%r8w
+\s*[a-f0-9]+:\s*d5 4d 01 f8\s+add\s+%r31,%r8
+\s*[a-f0-9]+:\s*d5 1d 03 c7\s+add\s+%r31,%r8
+\s*[a-f0-9]+:\s*d5 4d 03 38\s+add\s+\(%r8\),%r31
+\s*[a-f0-9]+:\s*d5 1d 03 07\s+add\s+\(%r31\),%r8
+\s*[a-f0-9]+:\s*49 81 c7 33 44 34 12\s+add\s+\$0x12344433,%r15
+\s*[a-f0-9]+:\s*49 81 c0 11 22 33 f4\s+add\s+\$0xfffffffff4332211,%r8
+\s*[a-f0-9]+:\s*d5 18 ff c9\s+dec\s+%r17
+\s*[a-f0-9]+:\s*d5 18 f7 d1\s+not\s+%r17
+\s*[a-f0-9]+:\s*d5 18 f7 d9\s+neg\s+%r17
+\s*[a-f0-9]+:\s*d5 1c 29 f9\s+sub\s+%r15,%r17
+\s*[a-f0-9]+:\s*62 54 04 18 29 38\s+sub\s+%r15d,\(%r8\),%r15d
+\s*[a-f0-9]+:\s*d5 49 2b 04 07\s+sub\s+\(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 ee 34 12 00 00\s+sub\s+\$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 19 f9\s+sbb\s+%r15,%r17
+\s*[a-f0-9]+:\s*62 54 84 18 19 38\s+sbb\s+%r15,\(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 1b 04 07\s+sbb\s+\(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 de 34 12 00 00\s+sbb\s+\$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 11 f9\s+adc\s+%r15,%r17
+\s*[a-f0-9]+:\s*45 13 38\s+adc\s+\(%r8\),%r15d
+\s*[a-f0-9]+:\s*d5 49 13 04 07\s+adc\s+\(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 d6 34 12 00 00\s+adc\s+\$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 09 f9\s+or\s+ %r15,%r17
+\s*[a-f0-9]+:\s*45 0b 38\s+or\s+ \(%r8\),%r15d
+\s*[a-f0-9]+:\s*d5 49 0b 04 07\s+or\s+\(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 ce 34 12 00 00\s+or\s+\$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 31 f9\s+xor\s+%r15,%r17
+\s*[a-f0-9]+:\s*45 33 38\s+xor\s+\(%r8\),%r15d
+\s*[a-f0-9]+:\s*d5 49 33 04 07\s+xor\s+\(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 f6 34 12 00 00\s+xor\s+\$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 21 f9\s+and\s+%r15,%r17
+\s*[a-f0-9]+:\s*45 23 38\s+and\s+\(%r8\),%r15d
+\s*[a-f0-9]+:\s*d5 49 23 04 07\s+and\s+\(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 e6 34 12 00 00\s+and\s+\$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 19 81 e6 34 12 00 00\s+and\s+\$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 19 d1 cf\s+ror\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 cf\s+ror\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*49 c1 cc 02\s+ror\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*d5 19 d1 c7\s+rol\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 c7\s+rol\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*49 c1 c4 02\s+rol\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*d5 19 d1 df\s+rcr\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 df\s+rcr\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*62 d4 1c 18 c0 dc 02\s+rcr\s+\$0x2,%r12b,%r12b
+\s*[a-f0-9]+:\s*49 c1 dc 02\s+rcr\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*d5 19 d1 d7\s+rcl\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 d7\s+rcl\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*62 d4 1c 18 c0 d4 02\s+rcl\s+\$0x2,%r12b,%r12b
+\s*[a-f0-9]+:\s*49 c1 d4 02\s+rcl\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*d5 19 d1 e7\s+shl\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 e7 \s+shl\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*62 d4 1c 18 c0 e4 02\s+shl\s+\$0x2,%r12b,%r12b
+\s*[a-f0-9]+:\s*49 c1 e4 02\s+shl\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*d5 19 d1 ff\s+sar\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 ff\s+sar\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*62 d4 1c 18 c0 fc 02\s+sar\s+\$0x2,%r12b,%r12b
+\s*[a-f0-9]+:\s*49 c1 fc 02\s+sar\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*d5 19 d1 e7\s+shl\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 e7\s+shl\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*62 d4 1c 18 c0 e4 02\s+shl\s+\$0x2,%r12b,%r12b
+\s*[a-f0-9]+:\s*49 c1 e4 02\s+shl\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*d5 19 d1 ef\s+shr\s+%r31
+\s*[a-f0-9]+:\s*62 dc 04 10 d0 ef\s+shr\s+%r31b,%r31b
+\s*[a-f0-9]+:\s*62 d4 1c 18 c0 ec 02\s+shr\s+\$0x2,%r12b,%r12b
+\s*[a-f0-9]+:\s*49 c1 ec 02\s+shr\s+\$0x2,%r12
+\s*[a-f0-9]+:\s*62 74 9c 18 24 20 01\s+shld\s+\$0x1,%r12,\(%rax\),%r12
+\s*[a-f0-9]+:\s*62 54 1d 18 24 c4 02\s+shld\s+\$0x2,%r8w,%r12w,%r12w
+\s*[a-f0-9]+:\s*62 74 35 18 a5 08\s+shld\s+ %cl,%r9w,\(%rax\),%r9w
+\s*[a-f0-9]+:\s*d5 9c a5 e0\s+shld\s+%cl,%r12,%r16
+\s*[a-f0-9]+:\s*62 7c 15 18 a5 2c 83\s+shld\s+%cl,%r13w,\(%r19,%rax,4\),%r13w
+\s*[a-f0-9]+:\s*62 74 9c 18 2c 20 01\s+shrd\s+\$0x1,%r12,\(%rax\),%r12
+\s*[a-f0-9]+:\s*4d 0f ac ec 01\s+shrd\s+\$0x1,%r13,%r12
+\s*[a-f0-9]+:\s*62 54 1d 18 2c c4 02\s+shrd\s+\$0x2,%r8w,%r12w,%r12w
+\s*[a-f0-9]+:\s*62 74 35 18 ad 08\s+shrd\s+%cl,%r9w,\(%rax\),%r9w
+\s*[a-f0-9]+:\s*d5 9c ad e0\s+shrd\s+%cl,%r12,%r16
+\s*[a-f0-9]+:\s*62 7c 15 18 ad 2c 83\s+shrd\s+%cl,%r13w,\(%r19,%rax,4\),%r13w
+\s*[a-f0-9]+:\s*66 45 0f 38 f6 c7\s+adcx\s+%r15d,%r8d
+\s*[a-f0-9]+:\s*62 14 79 08 66 04 3f\s+adcx\s+\(%r15,%r31,1\),%r8d
+\s*[a-f0-9]+:\s*f3 45 0f 38 f6 c7\s+adox\s+%r15d,%r8d
+\s*[a-f0-9]+:\s*62 14 7a 08 66 04 3f\s+adox\s+\(%r15,%r31,1\),%r8d
+\s*[a-f0-9]+:\s*67 0f 40 90 90 90 90 90\s+cmovo\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 41 90 90 90 90 90\s+cmovno\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 42 90 90 90 90 90\s+cmovb\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 43 90 90 90 90 90\s+cmovae\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 44 90 90 90 90 90\s+cmove\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 45 90 90 90 90 90\s+cmovne\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 46 90 90 90 90 90\s+cmovbe\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 47 90 90 90 90 90\s+cmova\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 48 90 90 90 90 90\s+cmovs\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 49 90 90 90 90 90\s+cmovns\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4a 90 90 90 90 90\s+cmovp\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4b 90 90 90 90 90\s+cmovnp\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4c 90 90 90 90 90\s+cmovl\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4d 90 90 90 90 90\s+cmovge\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4e 90 90 90 90 90\s+cmovle\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4f 90 90 90 90 90\s+cmovg\s+-0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f af 90 09 09 09 00\s+imul\s+0x90909\(%eax\),%edx
+\s*[a-f0-9]+:\s*d5 aa af 94 f8 09 09 00 00\s+imul\s+0x909\(%rax,%r31,8\),%rdx
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
new file mode 100644
index 00000000000..139d875d5a7
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
@@ -0,0 +1,115 @@
+# Check 64bit APX NDD instructions with optimized encoding
+
+	.allow_index_reg
+	.text
+_start:
+inc    %ax,%ax
+inc    %eax,%eax
+inc    %rax,%rax
+inc    %r16,%r16
+add    %r31b,%r8b,%r8b
+add    %r31b,%r8b,%r31b
+addb    %r31b,%r8b,%r8b
+add    %r31,%r8,%r8
+addq    %r31,%r8,%r8
+add    %r31d,%r8d,%r8d
+addl    %r31d,%r8d,%r8d
+add    %r31w,%r8w,%r8w
+addw    %r31w,%r8w,%r8w
+{store} add    %r31,%r8,%r8
+{load}  add    %r31,%r8,%r8
+add    %r31,(%r8),%r31
+add    (%r31),%r8,%r8
+add    $0x12344433,%r15,%r15
+add    $0xfffffffff4332211,%r8,%r8
+dec    %r17,%r17
+not    %r17,%r17
+neg    %r17,%r17
+sub    %r15,%r17,%r17
+sub    %r15d,(%r8),%r15d
+sub    (%r15,%rax,1),%r16,%r16
+sub    $0x1234,%r30,%r30
+sbb    %r15,%r17,%r17
+sbb    %r15,(%r8),%r15
+sbb    (%r15,%rax,1),%r16,%r16
+sbb    $0x1234,%r30,%r30
+adc    %r15,%r17,%r17
+adc    %r15d,(%r8),%r15d
+adc    (%r15,%rax,1),%r16,%r16
+adc    $0x1234,%r30,%r30
+or    %r15,%r17,%r17
+or    %r15d,(%r8),%r15d
+or    (%r15,%rax,1),%r16,%r16
+or    $0x1234,%r30,%r30
+xor    %r15,%r17,%r17
+xor    %r15d,(%r8),%r15d
+xor    (%r15,%rax,1),%r16,%r16
+xor    $0x1234,%r30,%r30
+and    %r15,%r17,%r17
+and    %r15d,(%r8),%r15d
+and    (%r15,%rax,1),%r16,%r16
+and    $0x1234,%r30,%r30
+and    $0x1234,%r30
+ror    %r31,%r31
+rorb   %r31b,%r31b
+ror    $0x2,%r12,%r12
+rol    %r31,%r31
+rolb   %r31b,%r31b
+rol    $0x2,%r12,%r12
+rcr    %r31,%r31
+rcrb   %r31b,%r31b
+rcr    $0x2,%r12b,%r12b
+rcr    $0x2,%r12,%r12
+rcl    %r31,%r31
+rclb   %r31b,%r31b
+rcl    $0x2,%r12b,%r12b
+rcl    $0x2,%r12,%r12
+shl    %r31,%r31
+shlb   %r31b,%r31b
+shl    $0x2,%r12b,%r12b
+shl    $0x2,%r12,%r12
+sar    %r31,%r31
+sarb   %r31b,%r31b
+sar    $0x2,%r12b,%r12b
+sar    $0x2,%r12,%r12
+shl    %r31,%r31
+shlb   %r31b,%r31b
+shl    $0x2,%r12b,%r12b
+shl    $0x2,%r12,%r12
+shr    %r31,%r31
+shrb   %r31b,%r31b
+shr    $0x2,%r12b,%r12b
+shr    $0x2,%r12,%r12
+shld   $0x1,%r12,(%rax),%r12
+shld   $0x2,%r8w,%r12w,%r12w
+shld   %cl,%r9w,(%rax),%r9w
+shld   %cl,%r12,%r16,%r16
+shld   %cl,%r13w,(%r19,%rax,4),%r13w
+shrd   $0x1,%r12,(%rax),%r12
+shrd   $0x1,%r13,%r12,%r12
+shrd   $0x2,%r8w,%r12w,%r12w
+shrd   %cl,%r9w,(%rax),%r9w
+shrd   %cl,%r12,%r16,%r16
+shrd   %cl,%r13w,(%r19,%rax,4),%r13w
+adcx   %r15d,%r8d,%r8d
+adcx   (%r15,%r31,1),%r8d,%r8d
+adox   %r15d,%r8d,%r8d
+adox   (%r15,%r31,1),%r8d,%r8d
+cmovo  0x90909090(%eax),%edx,%edx
+cmovno 0x90909090(%eax),%edx,%edx
+cmovb  0x90909090(%eax),%edx,%edx
+cmovae 0x90909090(%eax),%edx,%edx
+cmove  0x90909090(%eax),%edx,%edx
+cmovne 0x90909090(%eax),%edx,%edx
+cmovbe 0x90909090(%eax),%edx,%edx
+cmova  0x90909090(%eax),%edx,%edx
+cmovs  0x90909090(%eax),%edx,%edx
+cmovns 0x90909090(%eax),%edx,%edx
+cmovp  0x90909090(%eax),%edx,%edx
+cmovnp 0x90909090(%eax),%edx,%edx
+cmovl  0x90909090(%eax),%edx,%edx
+cmovge 0x90909090(%eax),%edx,%edx
+cmovle 0x90909090(%eax),%edx,%edx
+cmovg  0x90909090(%eax),%edx,%edx
+imul   0x90909(%eax),%edx,%edx
+imul   0x909(%rax,%r31,8),%rdx,%rdx
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index ca1583c6f88..c48430ca7cb 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -549,6 +549,7 @@ run_dump_test "x86-64-optimize-6"
 run_list_test "x86-64-optimize-7a" "-I${srcdir}/$subdir -march=+noavx -al"
 run_dump_test "x86-64-optimize-7b"
 run_list_test "x86-64-optimize-8" "-I${srcdir}/$subdir -march=+noavx2 -al"
+run_dump_test "x86-64-apx-ndd-optimize"
 run_dump_test "x86-64-align-branch-1a"
 run_dump_test "x86-64-align-branch-1b"
 run_dump_test "x86-64-align-branch-1c"
-- 
2.25.1


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

* [PATCH 6/8] Support APX Push2/Pop2
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
                   ` (4 preceding siblings ...)
  2023-09-19 15:25 ` [PATCH 5/8] Support APX NDD optimized encoding Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-28 11:37   ` Jan Beulich
  2023-09-19 15:25 ` [PATCH 7/8] Support APX NF Cui, Lili
  2023-09-19 15:25 ` [PATCH 8/8] Support APX JMPABS Cui, Lili
  7 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, Mo, Zewei

From: "Mo, Zewei" <zewei.mo@intel.com>

gas/ChangeLog:

	* config/tc-i386.c: (is_any_apx_encoding):
	Add handler for APX-Push2/Pop2 when no EGPR32 is used,
	(md_assemble): Add handler for APX-Push2/Pop2.
	(build_modrm_byte): Add handler for operands order,
	vvvv encoding and modrm encoding of APX-Push2/Pop2.
	* testsuite/gas/i386/i386.exp: Add apx-push2pop2 tests.
	* testsuite/gas/i386/x86-64-apx-push2pop2.d: New test.
	* testsuite/gas/i386/x86-64-apx-push2pop2.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-inval.l: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d: Ditto.
	* testsuite/gas/i386/apx-push2pop2-inval.s: Ditto.
	* testsuite/gas/i386/apx-push2pop2-inval.d: Ditto.

opcodes/ChangeLog:

	* i386-dis-evex.h: Add EVEX_MAP4_8F.
	* i386-dis-evex-w.h: Add EVEX_W_MAP4_8F_X86_64_L_0_M_1_R_0_P_0,
	EVEX_W_MAP4_FF_R_6_X86_64_L_0_M_1_P_0.
	* i386-dis-evex-len.h: Add EVEX_LEN_MAP4_8F_X86_64,
	EVEX_LEN_MAP4_FF_R_6_X86_64.
	* i386-dis-evex-mod.h: Add MOD_EVEX_MAP4_8F_X86_64_L_0,
	MOD_EVEX_MAP4_FF_R_6_X86_64_L_0.
	* i386-dis-evex-prefix.h:
	Add PREFIX_EVEX_MAP4_8F_X86_64_L_0_M_1_R_0,
	PREFIX_EVEX_MAP4_FF_R_6_X86_64_L_0_M_1.
	* i386-dis-evex-reg.h: Add REG_EVEX_MAP4_8F_X86_64_L_0_M_1.
	* i386-dis-evex-x86.h: Add X86_64_EVEX_MAP4_8F_X86_64,
	X86_64_EVEX_MAP4_FF_R_6_X86_64.
	* i386-dis.c: (OP) Add VexGq.
	(MOD_EVEX_MAP4_8F_X86_64_L_0): New.
	(MOD_EVEX_MAP4_FF_R_6_X86_64_L_0): Ditto.
	(PREFIX_EVEX_MAP4_8F_X86_64_L_0_M_1_R_0): Ditto.
	(PREFIX_EVEX_MAP4_FF_R_6_X86_64_L_0_M_1): Ditto.
	(EVEX_LEN_MAP4_8F_X86_64): Ditto.
	(EVEX_LEN_MAP4_FF_R_6_X86_64): Ditto.
	(EVEX_W_MAP4_8F_X86_64_L_0_M_1_R_0_P_0): Ditto.
	(EVEX_W_MAP4_FF_R_6_X86_64_L_0_M_1_P_0): Ditto.
	(REG_EVEX_MAP4_8F_X86_64_L_0_M_1): Ditto.
	(X86_64_EVEX_MAP4_8F): Ditto.
	(X86_64_EVEX_MAP4_FF_R_6): Ditto.
	(get_valid_dis386): Add handler of setting vector length for
	APX-Push2/Pop2 insn.
	(print_insn): Add handler of rounding control and cleaning
	vex.mask_register_specifier for APX-Push2/Pop2.
	(OP_VEX): Add handler of 64-bit vvvv register for APX-Push2/Pop2
	insn.
	* i386-opc.tbl: Add APX-Push2/Pop2 instructions.
	* i386-mnem.h: Regenerated.
	* i386-tbl.h: Regenerated.
---
 gas/config/tc-i386.c                          | 30 ++++++++++++-
 gas/testsuite/gas/i386/apx-push2pop2-inval.l  |  5 +++
 gas/testsuite/gas/i386/apx-push2pop2-inval.s  |  9 ++++
 gas/testsuite/gas/i386/i386.exp               |  1 +
 .../i386/x86-64-apx-push2pop2-decode-inval.d  | 29 ++++++++++++
 .../i386/x86-64-apx-push2pop2-decode-inval.s  | 19 ++++++++
 .../gas/i386/x86-64-apx-push2pop2-intel.d     | 42 ++++++++++++++++++
 .../gas/i386/x86-64-apx-push2pop2-inval.l     |  9 ++++
 .../gas/i386/x86-64-apx-push2pop2-inval.s     | 13 ++++++
 gas/testsuite/gas/i386/x86-64-apx-push2pop2.d | 42 ++++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx-push2pop2.s | 39 ++++++++++++++++
 gas/testsuite/gas/i386/x86-64.exp             |  4 ++
 opcodes/i386-dis-evex-len.h                   | 10 +++++
 opcodes/i386-dis-evex-mod.h                   | 10 +++++
 opcodes/i386-dis-evex-prefix.h                |  8 ++++
 opcodes/i386-dis-evex-reg.h                   |  9 ++++
 opcodes/i386-dis-evex-w.h                     | 10 +++++
 opcodes/i386-dis-evex-x86.h                   | 10 +++++
 opcodes/i386-dis-evex.h                       |  2 +-
 opcodes/i386-dis.c                            | 44 ++++++++++++++++++-
 opcodes/i386-gen.c                            |  1 +
 opcodes/i386-opc.h                            |  4 ++
 opcodes/i386-opc.tbl                          |  6 +++
 23 files changed, 351 insertions(+), 5 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/apx-push2pop2-inval.l
 create mode 100644 gas/testsuite/gas/i386/apx-push2pop2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index fba97ae37d8..dd3af5dd2d5 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -5667,6 +5667,22 @@ md_assemble (char *line)
       i.rex &= REX_OPCODE;
     }
 
+  if (i.tm.opcode_modifier.push2pop2)
+    {
+      i.imm_operands = 0;
+      unsigned int reg1 = register_number (i.op[0].regs);
+      unsigned int reg2 = register_number (i.op[1].regs);
+
+      /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same registers.  */
+      if (reg1 == 0x4 || reg2 == 0x4)
+	as_bad (_("%s for `%s'"), _("invalid register operand"),
+		insn_name (current_templates->start));
+
+      if ((i.tm.mnem_off == MN_pop2 || i.tm.mnem_off == MN_pop2p) && reg1 == reg2)
+	as_bad (_("%s for `%s'"), _("invalid register operand"),
+		insn_name (current_templates->start));
+    }
+
   /* Handle conversion of 'int $3' --> special int3 insn.  */
   if (i.tm.mnem_off == MN_int
       && i.op[0].imms->X_add_number == 3)
@@ -7100,7 +7116,11 @@ optimize_NDD_to_nonNDD (const insn_template *t)
       && t->opcode_space == SPACE_EVEXMAP4
       && i.reg_operands >= 2
       && (i.types[i.operands - 1].bitfield.dword
-	  || i.types[i.operands - 1].bitfield.qword))
+	  || i.types[i.operands - 1].bitfield.qword)
+      && (t->mnem_off != MN_pop2
+	  && t->mnem_off != MN_pop2p
+	  && t->mnem_off != MN_push2
+	  && t->mnem_off != MN_push2p))
     {
       int tmp_flag = -1;
       int dest = i.operands - 1;
@@ -8912,7 +8932,13 @@ build_modrm_byte (void)
       dest = ~0;
     }
   gas_assert (source < dest);
-  if (i.tm.opcode_modifier.operandconstraint == SWAP_SOURCES
+  if (i.tm.opcode_modifier.push2pop2)
+    {
+      v = 1;
+      dest = (unsigned int) ~0;
+      source = 0;
+    }
+  else if (i.tm.opcode_modifier.operandconstraint == SWAP_SOURCES
       && source != op)
     {
       unsigned int tmp = source;
diff --git a/gas/testsuite/gas/i386/apx-push2pop2-inval.l b/gas/testsuite/gas/i386/apx-push2pop2-inval.l
new file mode 100644
index 00000000000..a55a71520c8
--- /dev/null
+++ b/gas/testsuite/gas/i386/apx-push2pop2-inval.l
@@ -0,0 +1,5 @@
+.* Assembler messages:
+.*:6: Error: `push2' is only supported in 64-bit mode
+.*:7: Error: `push2p' is only supported in 64-bit mode
+.*:8: Error: `pop2' is only supported in 64-bit mode
+.*:9: Error: `pop2p' is only supported in 64-bit mode
diff --git a/gas/testsuite/gas/i386/apx-push2pop2-inval.s b/gas/testsuite/gas/i386/apx-push2pop2-inval.s
new file mode 100644
index 00000000000..77166327ed1
--- /dev/null
+++ b/gas/testsuite/gas/i386/apx-push2pop2-inval.s
@@ -0,0 +1,9 @@
+# Check 32bit APX-PUSH2/POP2 instructions
+
+	.allow_index_reg
+	.text
+_start:
+	push2 %rax, %rbx
+	push2p %rax, %rbx
+	pop2 %rax, %rbx
+	pop2p %rax, %rbx
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index d16eb888f24..7e0ad339141 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -507,6 +507,7 @@ if [gas_32_check] then {
     run_dump_test "sm4"
     run_dump_test "sm4-intel"
     run_list_test "pbndkb-inval"
+    run_list_test "apx-push2pop2-inval"
     run_list_test "sg"
     run_dump_test "clzero"
     run_dump_test "invlpgb"
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d
new file mode 100644
index 00000000000..e63a44554a0
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d
@@ -0,0 +1,29 @@
+#as: --64
+#objdump: -dw
+#name: illegal decoding of APX-push2pop2 insns
+#source: x86-64-apx-push2pop2-decode-inval.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <popnd0>:
+[ 	]*[a-f0-9]+:	62 f4 64             	\(bad\)
+[ 	]*[a-f0-9]+:	08                   	.byte 0x8
+[ 	]*[a-f0-9]+:	8f c0                	pop    %rax
+
+0+6 <poprspvvvv>:
+[ 	]*[a-f0-9]+:	62 f4 5c 18 8f       	\(bad\)
+[ 	]*[a-f0-9]+:	c0                   	.byte 0xc0
+
+0+c <pushrsprm>:
+[ 	]*[a-f0-9]+:	62 f4 74 10 ff       	\(bad\)
+[ 	]*[a-f0-9]+:	f4                   	hlt
+
+0+12 <popsamereg>:
+[ 	]*[a-f0-9]+:	62 d4 1c 18 8f       	\(bad\)
+[ 	]*[a-f0-9]+:	c4                   	.byte 0xc4
+
+0+18 <popsameegpr32>:
+[ 	]*[a-f0-9]+:	62 dc 04 10 8f       	\(bad\)
+[ 	]*[a-f0-9]+:	c7                   	.byte 0xc7
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s
new file mode 100644
index 00000000000..ac7296bc94d
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s
@@ -0,0 +1,19 @@
+# Check illegal bytecode of APX-Push2Pop2 instructions
+# pop2 %rax, %rbx
+# pop2 %rax, %rsp
+# push2 %rsp, %r17
+# pop2 %r12, %r12
+# pop2 %r31, %r31
+
+	.allow_index_reg
+	.text
+popnd0:
+	.byte 0x62,0xF4,0x64,0x08,0x8F,0xC0
+poprspvvvv:
+	.byte 0x62,0xF4,0x5C,0x18,0x8F,0xC0
+pushrsprm:
+	.byte 0x62,0xF4,0x74,0x10,0xFF,0xF4
+popsamereg:
+	.byte 0x62,0xD4,0x1C,0x18,0x8F,0xC4
+popsameegpr32:
+	.byte 0x62,0xDC,0x04,0x10,0x8F,0xC7
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d
new file mode 100644
index 00000000000..46b21219582
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d
@@ -0,0 +1,42 @@
+#as: --64
+#objdump: -dw -Mintel
+#name: i386 APX-push2pop2 insns (Intel disassembly)
+#source: x86-64-apx-push2pop2.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+r31,r24
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+r31,r24
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+r31,r24
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+r31,r24
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l
new file mode 100644
index 00000000000..61a9672edcd
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l
@@ -0,0 +1,9 @@
+.* Assembler messages:
+.*:6: Error: operand size mismatch for `push2'
+.*:7: Error: invalid register operand for `pop2'
+.*:8: Error: invalid register operand for `push2'
+.*:9: Error: invalid register operand for `pop2'
+.*:10: Error: operand size mismatch for `push2p'
+.*:11: Error: invalid register operand for `pop2p'
+.*:12: Error: invalid register operand for `push2p'
+.*:13: Error: invalid register operand for `pop2p'
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
new file mode 100644
index 00000000000..c36bd5df88b
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
@@ -0,0 +1,13 @@
+# Check illegal APX-Push2Pop2 instructions
+
+	.allow_index_reg
+	.text
+_start:
+	push2 %eax, %ebx
+	pop2 %rax, %rsp
+	push2 %rsp, %r17
+	pop2 %r12, %r12
+	push2p %eax, %ebx
+	pop2p %rax, %rsp
+	push2p %rsp, %r17
+	pop2p %r12, %r12
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2.d b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.d
new file mode 100644
index 00000000000..54f22a7f94e
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.d
@@ -0,0 +1,42 @@
+#as: --64
+#objdump: -dw
+#name: x86_64 APX-push2pop2 insns
+#source: x86-64-apx-push2pop2.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+%r24,%r31
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+%r24,%r31
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+%r24,%r31
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+%r24,%r31
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2.s b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.s
new file mode 100644
index 00000000000..4cfc0a2185f
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.s
@@ -0,0 +1,39 @@
+# Check 64bit APX-Push2Pop2 instructions
+
+	.allow_index_reg
+	.text
+_start:
+	push2 %rbx, %rax
+	push2 %r17, %r8
+	push2 %r9, %r31
+	push2 %r31, %r24
+	push2p %rbx, %rax
+	push2p %r17, %r8
+	push2p %r9, %r31
+	push2p %r31, %r24
+	pop2 %rax, %rbx
+	pop2 %r8, %r17
+	pop2 %r31, %r9
+	pop2 %r24, %r31
+	pop2p %rax, %rbx
+	pop2p %r8, %r17
+	pop2p %r31, %r9
+	pop2p %r24, %r31
+
+.intel_syntax noprefix
+	push2 rax, rbx
+	push2 r8, r17
+	push2 r31, r9
+	push2 r24, r31
+	push2p rax, rbx
+	push2p r8, r17
+	push2p r31, r9
+	push2p r24, r31
+	pop2 rbx, rax
+	pop2 r17, r8
+	pop2 r9, r31
+	pop2 r31, r24
+	pop2p rbx, rax
+	pop2p r17, r8
+	pop2p r9, r31
+	pop2p r31, r24
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index c48430ca7cb..2d3a0387497 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -342,6 +342,10 @@ run_dump_test "x86-64-avx512dq-rcigrd-intel"
 run_dump_test "x86-64-avx512dq-rcigrd"
 run_dump_test "x86-64-avx512dq-rcigrne-intel"
 run_dump_test "x86-64-avx512dq-rcigrne"
+run_dump_test "x86-64-apx-push2pop2"
+run_dump_test "x86-64-apx-push2pop2-intel"
+run_list_test "x86-64-apx-push2pop2-inval"
+run_dump_test "x86-64-apx-push2pop2-decode-inval"
 run_dump_test "x86-64-avx512dq-rcigru-intel"
 run_dump_test "x86-64-avx512dq-rcigru"
 run_dump_test "x86-64-avx512dq-rcigrz-intel"
diff --git a/opcodes/i386-dis-evex-len.h b/opcodes/i386-dis-evex-len.h
index 1933a045822..7c9b921bf6b 100644
--- a/opcodes/i386-dis-evex-len.h
+++ b/opcodes/i386-dis-evex-len.h
@@ -155,4 +155,14 @@ static const struct dis386 evex_len_table[][3] = {
     { VEX_W_TABLE (EVEX_W_0F3A43_L_n) },
     { VEX_W_TABLE (EVEX_W_0F3A43_L_n) },
   },
+
+  /* EVEX_LEN_MAP4_8F_X86_64 */
+  {
+    { MOD_TABLE (MOD_EVEX_MAP4_8F_X86_64_L_0) },
+  },
+
+  /* EVEX_LEN_MAP4_FF_R_6_X86_64 */
+  {
+    { MOD_TABLE (MOD_EVEX_MAP4_FF_R_6_X86_64_L_0) },
+  },
 };
diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h
index 5a1326a1b73..ad7b0514720 100644
--- a/opcodes/i386-dis-evex-mod.h
+++ b/opcodes/i386-dis-evex-mod.h
@@ -7,6 +7,11 @@
   {
     { "wrssK",		{ M, Gdq }, 0 },
   },
+  /* MOD_EVEX_MAP4_8F_X86_64_L_0 */
+  {
+    { Bad_Opcode },
+    { REG_TABLE (REG_EVEX_MAP4_8F_X86_64_L_0_M_1) },
+  },
   /* MOD_EVEX_MAP4_DA_PREFIX_1 */
   {
     { Bad_Opcode },
@@ -49,3 +54,8 @@
   {
     { "movdiri",	{ Edq, Gdq }, 0 },
   },
+  /* MOD_EVEX_MAP4_FF_R_6_X86_64_L_0 */
+  {
+    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_FF_R_6_X86_64_L_0_M_1) },
+  },
diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h
index 210783d7e88..5b2dff379bd 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -356,6 +356,10 @@
     { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
     { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },
   },
+  /* PREFIX_EVEX_MAP4_8F_X86_64_L_0_M_1_R_0 */
+  {
+    { VEX_W_TABLE (EVEX_W_MAP4_8F_X86_64_L_0_M_1_R_0_P_0) }
+  },
   /* PREFIX_EVEX_MAP4_D8 */
   {
     { "sha1nexte", { XM, EXxmm }, 0 },
@@ -421,6 +425,10 @@
     { "aand",	{ Mdq, Gdq }, 0 },
     { "aor",	{ Mdq, Gdq }, 0 },
   },
+  /* PREFIX_EVEX_MAP4_FF_R_6_X86_64_L_0_M_1 */
+  {
+    { VEX_W_TABLE (EVEX_W_MAP4_FF_R_6_X86_64_L_0_M_1_P_0) },
+  },
   /* PREFIX_EVEX_MAP5_10 */
   {
     { Bad_Opcode },
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index d00c2843e12..f9d313a78e1 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -89,6 +89,10 @@
     { "xorQ",	{ VexGv, Ev, sIb }, 0 },
     { Bad_Opcode },
   },
+  /* REG_EVEX_MAP4_8F_X86_64_L_0_M_1 */
+  {
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_8F_X86_64_L_0_M_1_R_0) },
+  },
   /* REG_EVEX_MAP4_C0 */
   {
     { "rolA",	{ VexGb, Eb, Ib }, 0 },
@@ -185,4 +189,9 @@
   {
     { "incQ",   { VexGv ,Ev }, 0 },
     { "decQ",   { VexGv ,Ev }, 0 },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { X86_64_EVEX_PUSH2_TABLE (X86_64_EVEX_MAP4_FF_R_6) },
   },
diff --git a/opcodes/i386-dis-evex-w.h b/opcodes/i386-dis-evex-w.h
index b828277d413..da238764d59 100644
--- a/opcodes/i386-dis-evex-w.h
+++ b/opcodes/i386-dis-evex-w.h
@@ -442,6 +442,16 @@
     { Bad_Opcode },
     { "vpshrdw",   { XM, Vex, EXx, Ib }, 0 },
   },
+  /* EVEX_W_MAP4_8F_X86_64_L_0_M_1_R_0_P_0 */
+  {
+    { "pop2", { VexGq, Eq }, 0 },
+    { "pop2p", { VexGq, Eq }, 0 },
+  },
+  /* EVEX_W_MAP4_FF_R_6_X86_64_L_0_M_1_P_0 */
+  {
+    { "push2", { VexGq, Eq }, 0 },
+    { "push2p", { VexGq, Eq }, 0 },
+  },
   /* EVEX_W_MAP5_5B_P_0 */
   {
     { "vcvtdq2ph%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
diff --git a/opcodes/i386-dis-evex-x86.h b/opcodes/i386-dis-evex-x86.h
index 1121223d877..b603f1af882 100644
--- a/opcodes/i386-dis-evex-x86.h
+++ b/opcodes/i386-dis-evex-x86.h
@@ -138,3 +138,13 @@
     { Bad_Opcode },
     { VEX_LEN_TABLE (VEX_LEN_0F3AF0) },
   },
+  /* X86_64_EVEX_MAP4_8F*/
+  {
+    { Bad_Opcode },
+    { EVEX_LEN_TABLE (EVEX_LEN_MAP4_8F_X86_64) },
+  },
+  /* X86_64_EVEX_MAP4_FF_R_6*/
+  {
+    { Bad_Opcode },
+    { EVEX_LEN_TABLE (EVEX_LEN_MAP4_FF_R_6_X86_64) },
+  },
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 1787be6dbf0..22fa9b2b067 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -1035,7 +1035,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { X86_64_EVEX_POP2_TABLE (X86_64_EVEX_MAP4_8F) },
     /* 90 */
     { Bad_Opcode },
     { Bad_Opcode },
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index c702fd9e756..4671d2e4b0e 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -137,6 +137,7 @@ enum evex_type
   evex_default = 0,
   evex_from_legacy,
   evex_from_vex,
+  evex_push2_pop2,
 };
 
 struct instr_info
@@ -571,6 +572,7 @@ fetch_error (const instr_info *ins)
 #define VexGatherD { OP_VEX, vex_vsib_d_w_dq_mode }
 #define VexGatherQ { OP_VEX, vex_vsib_q_w_dq_mode }
 #define VexGdq { OP_VEX, dq_mode }
+#define VexGq { OP_VEX, q_mode }
 #define VexGb { OP_VEX, b_mode }
 #define VexGv { OP_VEX, v_mode }
 #define VexTmm { OP_VEX, tmm_mode }
@@ -804,6 +806,8 @@ enum
   USE_PREFIX_TABLE,
   USE_X86_64_TABLE,
   USE_X86_64_EVEX_FROM_VEX_TABLE,
+  USE_X86_64_EVEX_PUSH2_TABLE,
+  USE_X86_64_EVEX_POP2_TABLE,
   USE_3BYTE_TABLE,
   USE_XOP_8F_TABLE,
   USE_VEX_C4_TABLE,
@@ -824,6 +828,10 @@ enum
 #define X86_64_TABLE(I)		DIS386 (USE_X86_64_TABLE, (I))
 #define X86_64_EVEX_FROM_VEX_TABLE(I) \
   DIS386 (USE_X86_64_EVEX_FROM_VEX_TABLE, (I))
+#define X86_64_EVEX_PUSH2_TABLE(I) \
+  DIS386 (USE_X86_64_EVEX_PUSH2_TABLE, (I))
+#define X86_64_EVEX_POP2_TABLE(I) \
+  DIS386 (USE_X86_64_EVEX_POP2_TABLE, (I))
 #define THREE_BYTE_TABLE(I)	DIS386 (USE_3BYTE_TABLE, (I))
 #define XOP_8F_TABLE()		DIS386 (USE_XOP_8F_TABLE, 0)
 #define VEX_C4_TABLE()		DIS386 (USE_VEX_C4_TABLE, 0)
@@ -888,6 +896,7 @@ enum
   REG_EVEX_MAP4_80,
   REG_EVEX_MAP4_81,
   REG_EVEX_MAP4_83,
+  REG_EVEX_MAP4_8F_X86_64_L_0_M_1,
   REG_EVEX_MAP4_C0,
   REG_EVEX_MAP4_C1,
   REG_EVEX_MAP4_D0,
@@ -941,6 +950,7 @@ enum
 
   MOD_EVEX_MAP4_65,
   MOD_EVEX_MAP4_66_PREFIX_0,
+  MOD_EVEX_MAP4_8F_X86_64_L_0,
   MOD_EVEX_MAP4_DA_PREFIX_1,
   MOD_EVEX_MAP4_DB_PREFIX_1,
   MOD_EVEX_MAP4_DC_PREFIX_1,
@@ -951,6 +961,7 @@ enum
   MOD_EVEX_MAP4_F8_PREFIX_2,
   MOD_EVEX_MAP4_F8_PREFIX_3,
   MOD_EVEX_MAP4_F9,
+  MOD_EVEX_MAP4_FF_R_6_X86_64_L_0,
 };
 
 enum
@@ -1189,6 +1200,7 @@ enum
   PREFIX_EVEX_MAP4_60,
   PREFIX_EVEX_MAP4_61,
   PREFIX_EVEX_MAP4_66,
+  PREFIX_EVEX_MAP4_8F_X86_64_L_0_M_1_R_0,
   PREFIX_EVEX_MAP4_D8,
   PREFIX_EVEX_MAP4_DA,
   PREFIX_EVEX_MAP4_DB,
@@ -1201,6 +1213,7 @@ enum
   PREFIX_EVEX_MAP4_F2,
   PREFIX_EVEX_MAP4_F8,
   PREFIX_EVEX_MAP4_FC,
+  PREFIX_EVEX_MAP4_FF_R_6_X86_64_L_0_M_1,
 
   PREFIX_EVEX_MAP5_10,
   PREFIX_EVEX_MAP5_11,
@@ -1341,6 +1354,9 @@ enum
   X86_64_EVEX_0F38F6,
   X86_64_EVEX_0F38F7,
   X86_64_EVEX_0F3AF0,
+
+  X86_64_EVEX_MAP4_8F,
+  X86_64_EVEX_MAP4_FF_R_6,
 };
 
 enum
@@ -1537,7 +1553,10 @@ enum
   EVEX_LEN_0F3A39,
   EVEX_LEN_0F3A3A,
   EVEX_LEN_0F3A3B,
-  EVEX_LEN_0F3A43
+  EVEX_LEN_0F3A43,
+
+  EVEX_LEN_MAP4_8F_X86_64,
+  EVEX_LEN_MAP4_FF_R_6_X86_64,
 };
 
 enum
@@ -1761,6 +1780,9 @@ enum
   EVEX_W_0F3A70,
   EVEX_W_0F3A72,
 
+  EVEX_W_MAP4_8F_X86_64_L_0_M_1_R_0_P_0,
+  EVEX_W_MAP4_FF_R_6_X86_64_L_0_M_1_P_0,
+
   EVEX_W_MAP5_5B_P_0,
   EVEX_W_MAP5_7A_P_3,
 };
@@ -8757,10 +8779,24 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
       dp = &prefix_table[dp->op[1].bytemode][vindex];
       break;
 
+    case USE_X86_64_EVEX_PUSH2_TABLE:
+    case USE_X86_64_EVEX_POP2_TABLE:
+	ins->evex_type = evex_push2_pop2;
+      unsigned int vvvv_reg = ins->vex.register_specifier
+			      | !ins->vex.v << 4;
+      unsigned int rm_reg = ins->modrm.rm + (ins->rex & REX_B ? 8 : 0)
+			    + (ins->rex2 & REX_B ? 16 : 0);
+      if (!ins->vex.b || vvvv_reg == 0x4 || rm_reg == 0x4
+	  || (dp->op[0].bytemode == USE_X86_64_EVEX_POP2_TABLE
+	      && vvvv_reg == rm_reg))
+	  return &bad_opcode;
+      goto use_x86_64_table;
+
     case USE_X86_64_EVEX_FROM_VEX_TABLE:
       ins->evex_type = evex_from_vex;
       /* Fall through.  */
     case USE_X86_64_TABLE:
+use_x86_64_table:
       vindex = ins->address_mode == mode_64bit ? 1 : 0;
       dp = &x86_64_table[dp->op[1].bytemode][vindex];
       break;
@@ -9570,7 +9606,8 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
 	  /* Check whether rounding control was enabled for an insn not
 	     supporting it.  */
 	  if (ins.modrm.mod == 3 && ins.vex.b
-	      && !(ins.evex_used & EVEX_b_used))
+	      && !(ins.evex_used & EVEX_b_used)
+	      && ins.evex_type != evex_push2_pop2)
 	    {
 	      for (i = 0; i < MAX_OPERANDS; ++i)
 		{
@@ -13416,6 +13453,9 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED)
 	case b_mode:
 	  names = att_names8rex;
 	  break;
+	case q_mode:
+	  names = att_names64;
+	  break;
 	case mask_bd_mode:
 	case mask_mode:
 	  if (reg > 0x7)
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index f43cb1ecf7c..f951c452cc3 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -471,6 +471,7 @@ static bitfield opcode_modifiers[] =
   BITFIELD (IntelSyntax),
   BITFIELD (ISA64),
   BITFIELD (No_egpr),
+  BITFIELD (Push2Pop2),
 };
 
 #define CLASS(n) #n, n
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index f36a8da5cbe..1663cc74937 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -749,6 +749,9 @@ enum
   /* egprs (r16-r31) on instruction illegal.  */
   No_egpr,
 
+  /* APX Push2Pop2 bit  */
+  Push2Pop2,
+
   /* The last bitfield in i386_opcode_modifier.  */
   Opcode_Modifier_Num
 };
@@ -797,6 +800,7 @@ typedef struct i386_opcode_modifier
   unsigned int intelsyntax:1;
   unsigned int isa64:2;
   unsigned int no_egpr:1;
+  unsigned int push2pop2:1;
 } i386_opcode_modifier;
 
 /* Operand classes.  */
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 4bb0c9f4906..583b6676b0e 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -3555,3 +3555,9 @@ eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
 
 // FRED instructions end.
 
+// APX Push2/Pop2 instruction.
+
+push2, 0xff/6, APX_F|x64, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
+push2p, 0xff/6, APX_F|x64, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
+pop2, 0x8f/0, APX_F|x64, Modrm|VexW0|EVex128|Push2Pop2|SwapSources|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
+pop2p, 0x8f/0, APX_F|x64, Modrm|VexW1|EVex128|Push2Pop2|SwapSources|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
-- 
2.25.1


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

* [PATCH 7/8] Support APX NF
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
                   ` (5 preceding siblings ...)
  2023-09-19 15:25 ` [PATCH 6/8] Support APX Push2/Pop2 Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-25  6:07   ` Jan Beulich
  2023-09-28 12:42   ` Jan Beulich
  2023-09-19 15:25 ` [PATCH 8/8] Support APX JMPABS Cui, Lili
  7 siblings, 2 replies; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu

gas/ChangeLog:

	* config/tc-i386.c (is_any_apx_encoding): Add has_nf and i.has_zero_upper
	for apx encoding.
	(build_evex_insns_with_extend_evex_prefix): Encode the NF bit.
	(build_legacy_insns_with_apx_encoding): Likewise.
	(parse_insn): Handle Prefix_NF.
	(check_NfPrefix): New.
	(match_template): Handle check_NfPrefix and add nf check for D.
	* testsuite/gas/i386/x86-64.exp: Add apx-nf tests.
	* testsuite/gas/i386/x86-64-apx-nf-intel.d: New test.
	* testsuite/gas/i386/x86-64-apx-nf.d: Likewise.
	* testsuite/gas/i386/x86-64-apx_nf.s: Likewise.

opcodes/ChangeLog:

	* i386-dis-evex-len.h: Add %XN to the instructions that support APX NF.
	* i386-dis-evex-reg.h: Likewise.
	* i386-dis-evex.h: Add %XN to the instructions that support APX NF and
	add new instruction imul, popcnt, tzcnt and lzcnt to EVEX table.
	* i386-dis.c (struct instr_info): Add nf.
	(struct dis386): Add "XN" for EVEX.NF.
	(print_insn): Use EVEX.a2 bit as appropriate
	(putop): Handle "%XN".
	* i386-gen.c: Add BITFIELD for NF.
	* i386-mnem.h: Regenerated.
	* i386-opc.h (Prefix_NoOptimize): Add Prefix_NF.
	(Prefix_NF): New.
	* i386-opc.tbl: Add new entries for the instructions that support APX NF.
	* i386-tbl.h: Regenerated.
---
 gas/config/tc-i386.c                         |   39 +-
 gas/testsuite/gas/i386/x86-64-apx-ndd.d      |    2 +-
 gas/testsuite/gas/i386/x86-64-apx-nf-intel.d |  633 +++++++++
 gas/testsuite/gas/i386/x86-64-apx-nf.d       |  633 +++++++++
 gas/testsuite/gas/i386/x86-64-apx-nf.s       | 1256 ++++++++++++++++++
 gas/testsuite/gas/i386/x86-64.exp            |    2 +
 opcodes/i386-dis-evex-len.h                  |    2 +-
 opcodes/i386-dis-evex-reg.h                  |  133 +-
 opcodes/i386-dis-evex.h                      |   60 +-
 opcodes/i386-dis.c                           |   49 +-
 opcodes/i386-gen.c                           |    1 +
 opcodes/i386-opc.h                           |    9 +-
 opcodes/i386-opc.tbl                         |  192 ++-
 13 files changed, 2855 insertions(+), 156 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-nf-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-nf.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-nf.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index dd3af5dd2d5..1fe4980f26a 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3863,7 +3863,7 @@ is_evex_encoding (const insn_template *t)
 {
   return t->opcode_modifier.evex || t->opcode_modifier.disp8memshift
 	 || t->opcode_modifier.broadcast || t->opcode_modifier.masking
-	 || t->opcode_modifier.sae;
+	 || t->opcode_modifier.sae || t->opcode_modifier.nf;
 }
 
 static INLINE bool
@@ -3878,6 +3878,8 @@ is_any_apx_encoding (void)
   return i.rex2 
     || i.rex2_encoding
     || i.tm.opcode_space == SPACE_EVEXMAP4
+    || i.has_nf
+    || i.has_zero_upper
     || (i.vex.register_specifier
 	&& i.vex.register_specifier->reg_flags & RegRex2);
 }
@@ -4178,11 +4180,15 @@ build_evex_insns_with_extend_evex_prefix (void)
     i.vex.bytes[1] &= 0xef;
   if (i.vex.register_specifier
       && register_number (i.vex.register_specifier) > 0xf)
-    i.vex.bytes[3] &=0xf7;
+    i.vex.bytes[3] &= 0xf7;
   if (i.rex2 & REX_B)
     i.vex.bytes[1] |= 0x08;
   if (i.rex2 & REX_X)
     i.vex.bytes[2] &= 0xfb;
+
+  /* Encode the NF bit.  */
+  if (i.has_nf)
+    i.vex.bytes[3] |= 0x04;
 }
 
 /* Build the EVEX prefix (4-byte) for legacy insn
@@ -4210,6 +4216,10 @@ build_legacy_insns_with_apx_encoding (void)
   /* Encode the NDD bit.  */
   if (i.vex.register_specifier)
     i.vex.bytes[3] |= 0x10;
+
+  /* Encode the NF bit.  */
+  if (i.has_nf)
+    i.vex.bytes[3] |= 0x04;
 }
 
 static void
@@ -5944,6 +5954,10 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
 		  /* {rex2} */
 		  i.rex2_encoding = true;
 		  break;
+		case Prefix_NF:
+		  /* {NF} */
+		  i.has_nf = true;
+		  break;
 		case Prefix_NoOptimize:
 		  /* {nooptimize} */
 		  i.no_optimize = true;
@@ -7151,6 +7165,19 @@ optimize_NDD_to_nonNDD (const insn_template *t)
   return 0;
 }
 
+/* Check if NF prefix requirements are met by the instruction.  */
+static int
+check_NfPrefix (const insn_template *t)
+{
+  if (i.has_nf && !t->opcode_modifier.nf)
+    {
+      /* This instruction should support nf prefix.  */
+      i.error = unsupported;
+      return 1;
+    }
+  return 0;
+}
+
 /* Helper function for the progress() macro in match_template().  */
 static INLINE enum i386_error progress (enum i386_error new,
 					enum i386_error last,
@@ -7551,6 +7578,7 @@ match_template (char mnem_suffix)
 		  goto check_operands_345;
 		}
 	      else if (t->opcode_space != SPACE_BASE
+		       && !t->opcode_modifier.nf
 		       && (t->opcode_space != SPACE_0F
 			   /* MOV to/from CR/DR/TR, as an exception, follow
 			      the base opcode space encoding model.  */
@@ -7652,6 +7680,13 @@ match_template (char mnem_suffix)
 	  continue;
 	}
 
+      /* Check if nf prefix are valid.  */
+      if (check_NfPrefix (t))
+	{
+	  specific_error = progress (i.error);
+	  continue;
+	}
+
       /* We've found a match; break out of loop.  */
       break;
     }
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd.d b/gas/testsuite/gas/i386/x86-64-apx-ndd.d
index debb99f2ff9..080c0cbd784 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-ndd.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.d
@@ -158,7 +158,7 @@ Disassembly of section .text:
 \s*[a-f0-9]+:\s*67 62 f4 3c 18 4f 90 90 90 90 90 	cmovg  -0x6f6f6f70\(%eax\),%edx,%r8d
 \s*[a-f0-9]+:\s*67 62 f4 3c 18 af 90 09 09 09 00 	imul   0x90909\(%eax\),%edx,%r8d
 \s*[a-f0-9]+:\s*62 b4 b0 10 af 94 f8 09 09 00 00 	imul   0x909\(%rax,%r31,8\),%rdx,%r25
-\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+inc    %rax
+\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+\{evex\} inc %rax
 \s*[a-f0-9]+:\s*62 f4 ec\s+\(bad\)
 \s*[a-f0-9]+:\s*08 ff\s+or     %bh,%bh
 \s*[a-f0-9]+:\s*c0\s+\.byte 0xc0
diff --git a/gas/testsuite/gas/i386/x86-64-apx-nf-intel.d b/gas/testsuite/gas/i386/x86-64-apx-nf-intel.d
new file mode 100644
index 00000000000..240c9ba6150
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-nf-intel.d
@@ -0,0 +1,633 @@
+#as:
+#objdump: -dw -Mintel
+#name: x86_64 APX_F insns (Intel disassembly)
+#source: x86-64-apx-nf.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 c3 7b\s+\{nf\} add bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 c3 7b\s+\{nf\} add dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 c2 7b\s+\{nf\} add dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 c2 7b\s+\{nf\} add ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 c1 7b\s+\{nf\} add ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 c1 7b\s+\{nf\} add edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 c1 7b\s+\{nf\} add r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 83 c1 7b\s+\{nf\} add r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 84 80 23 01 00 00 7b\s+\{nf\} add BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 84 80 23 01 00 00 7b\s+\{nf\} add bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 84 80 23 01 00 00 7b\s+\{nf\} add WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 84 80 23 01 00 00 7b\s+\{nf\} add dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 84 80 23 01 00 00 7b\s+\{nf\} add DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 84 80 23 01 00 00 7b\s+\{nf\} add ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 84 80 23 01 00 00 7b\s+\{nf\} add QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 84 80 23 01 00 00 7b\s+\{nf\} add r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 00 da\s+\{nf\} add dl,bl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 00 da\s+\{nf\} add r8b,dl,bl
+\s*[a-f0-9]+:\s*62 d4 7c 0c 00 9c 80 23 01 00 00\s+\{nf\} add BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 00 9c 80 23 01 00 00\s+\{nf\} add dl,BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 01 d0\s+\{nf\} add ax,dx
+\s*[a-f0-9]+:\s*62 f4 35 1c 01 d0\s+\{nf\} add r9w,ax,dx
+\s*[a-f0-9]+:\s*62 d4 7d 0c 01 94 80 23 01 00 00\s+\{nf\} add WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 01 94 80 23 01 00 00\s+\{nf\} add ax,WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c 01 ca\s+\{nf\} add edx,ecx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 01 ca\s+\{nf\} add r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 01 8c 80 23 01 00 00\s+\{nf\} add DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 01 8c 80 23 01 00 00\s+\{nf\} add edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 5c fc 0c 01 cf\s+\{nf\} add r31,r9
+\s*[a-f0-9]+:\s*62 5c a4 1c 01 cf\s+\{nf\} add r11,r31,r9
+\s*[a-f0-9]+:\s*62 54 fc 0c 01 8c 80 23 01 00 00\s+\{nf\} add QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 54 84 14 01 8c 80 23 01 00 00\s+\{nf\} add r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c 02 9c 80 23 01 00 00\s+\{nf\} add bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 02 9c 80 23 01 00 00\s+\{nf\} add dl,bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c 03 94 80 23 01 00 00\s+\{nf\} add dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 1c 03 94 80 23 01 00 00\s+\{nf\} add ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c 03 8c 80 23 01 00 00\s+\{nf\} add ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 03 8c 80 23 01 00 00\s+\{nf\} add edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c 03 8c 80 23 01 00 00\s+\{nf\} add r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 84 14 03 8c 80 23 01 00 00\s+\{nf\} add r31,r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 e3 7b\s+\{nf\} and bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 e3 7b\s+\{nf\} and dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 e2 7b\s+\{nf\} and dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 e2 7b\s+\{nf\} and ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 e1 7b\s+\{nf\} and ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 e1 7b\s+\{nf\} and edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 e1 7b\s+\{nf\} and r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 83 e1 7b\s+\{nf\} and r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 a4 80 23 01 00 00 7b\s+\{nf\} and BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 a4 80 23 01 00 00 7b\s+\{nf\} and bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 a4 80 23 01 00 00 7b\s+\{nf\} and WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 a4 80 23 01 00 00 7b\s+\{nf\} and dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 a4 80 23 01 00 00 7b\s+\{nf\} and DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 a4 80 23 01 00 00 7b\s+\{nf\} and ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 a4 80 23 01 00 00 7b\s+\{nf\} and QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 a4 80 23 01 00 00 7b\s+\{nf\} and r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 20 da\s+\{nf\} and dl,bl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 20 da\s+\{nf\} and r8b,dl,bl
+\s*[a-f0-9]+:\s*62 d4 7c 0c 20 9c 80 23 01 00 00\s+\{nf\} and BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 20 9c 80 23 01 00 00\s+\{nf\} and dl,BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 21 d0\s+\{nf\} and ax,dx
+\s*[a-f0-9]+:\s*62 f4 35 1c 21 d0\s+\{nf\} and r9w,ax,dx
+\s*[a-f0-9]+:\s*62 d4 7d 0c 21 94 80 23 01 00 00\s+\{nf\} and WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 21 94 80 23 01 00 00\s+\{nf\} and ax,WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c 21 ca\s+\{nf\} and edx,ecx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 21 ca\s+\{nf\} and r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 21 8c 80 23 01 00 00\s+\{nf\} and DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 21 8c 80 23 01 00 00\s+\{nf\} and edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 5c fc 0c 21 cf\s+\{nf\} and r31,r9
+\s*[a-f0-9]+:\s*62 5c a4 1c 21 cf\s+\{nf\} and r11,r31,r9
+\s*[a-f0-9]+:\s*62 54 fc 0c 21 8c 80 23 01 00 00\s+\{nf\} and QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 54 84 14 21 8c 80 23 01 00 00\s+\{nf\} and r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c 22 9c 80 23 01 00 00\s+\{nf\} and bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 22 9c 80 23 01 00 00\s+\{nf\} and dl,bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c 23 94 80 23 01 00 00\s+\{nf\} and dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 1c 23 94 80 23 01 00 00\s+\{nf\} and ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c 23 8c 80 23 01 00 00\s+\{nf\} and ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 23 8c 80 23 01 00 00\s+\{nf\} and edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c 23 8c 80 23 01 00 00\s+\{nf\} and r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 84 14 23 8c 80 23 01 00 00\s+\{nf\} and r31,r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 72 6c 0c f2 d1\s+\{nf\} andn r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 52 84 04 f2 d9\s+\{nf\} andn r11,r31,r9
+\s*[a-f0-9]+:\s*62 d2 74 0c f2 94 80 23 01 00 00\s+\{nf\} andn edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 42 b4 0c f2 bc 80 23 01 00 00\s+\{nf\} andn r31,r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 72 74 0c f7 d2\s+\{nf\} bextr r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d2 74 0c f7 94 80 23 01 00 00\s+\{nf\} bextr edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 5a b4 0c f7 df\s+\{nf\} bextr r11,r31,r9
+\s*[a-f0-9]+:\s*62 42 b4 0c f7 bc 80 23 01 00 00\s+\{nf\} bextr r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 f2 6c 0c f3 d9\s+\{nf\} blsi edx,ecx
+\s*[a-f0-9]+:\s*62 d2 84 04 f3 d9\s+\{nf\} blsi r31,r9
+\s*[a-f0-9]+:\s*62 d2 74 0c f3 9c 80 23 01 00 00\s+\{nf\} blsi ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 b4 0c f3 9c 80 23 01 00 00\s+\{nf\} blsi r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f2 6c 0c f3 d1\s+\{nf\} blsmsk edx,ecx
+\s*[a-f0-9]+:\s*62 d2 84 04 f3 d1\s+\{nf\} blsmsk r31,r9
+\s*[a-f0-9]+:\s*62 d2 74 0c f3 94 80 23 01 00 00\s+\{nf\} blsmsk ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 b4 0c f3 94 80 23 01 00 00\s+\{nf\} blsmsk r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f2 6c 0c f3 c9\s+\{nf\} blsr edx,ecx
+\s*[a-f0-9]+:\s*62 d2 84 04 f3 c9\s+\{nf\} blsr r31,r9
+\s*[a-f0-9]+:\s*62 d2 74 0c f3 8c 80 23 01 00 00\s+\{nf\} blsr ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d2 b4 0c f3 8c 80 23 01 00 00\s+\{nf\} blsr r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 72 74 0c f5 d2\s+\{nf\} bzhi r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d2 74 0c f5 94 80 23 01 00 00\s+\{nf\} bzhi edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 5a b4 0c f5 df\s+\{nf\} bzhi r11,r31,r9
+\s*[a-f0-9]+:\s*62 42 b4 0c f5 bc 80 23 01 00 00\s+\{nf\} bzhi r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c fe cb\s+\{nf\} dec bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c fe cb\s+\{nf\} dec dl,bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c ff ca\s+\{nf\} dec dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c ff ca\s+\{nf\} dec ax,dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c ff c9\s+\{nf\} dec ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c ff c9\s+\{nf\} dec edx,ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff c9\s+\{nf\} dec r9
+\s*[a-f0-9]+:\s*62 d4 84 14 ff c9\s+\{nf\} dec r31,r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c fe 8c 80 23 01 00 00\s+\{nf\} dec BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 64 1c fe 8c 80 23 01 00 00\s+\{nf\} dec bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c ff 8c 80 23 01 00 00\s+\{nf\} dec WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6d 1c ff 8c 80 23 01 00 00\s+\{nf\} dec dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c ff 8c 80 23 01 00 00\s+\{nf\} dec DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 74 1c ff 8c 80 23 01 00 00\s+\{nf\} dec ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff 8c 80 23 01 00 00\s+\{nf\} dec QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 b4 1c ff 8c 80 23 01 00 00\s+\{nf\} dec r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 f3\s+\{nf\} div bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 f2\s+\{nf\} div dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 f1\s+\{nf\} div ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 f1\s+\{nf\} div r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 b4 80 23 01 00 00\s+\{nf\} div BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 b4 80 23 01 00 00\s+\{nf\} div WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 b4 80 23 01 00 00\s+\{nf\} div DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 b4 80 23 01 00 00\s+\{nf\} div QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 fb\s+\{nf\} idiv bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 fa\s+\{nf\} idiv dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 f9\s+\{nf\} idiv ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 f9\s+\{nf\} idiv r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 bc 80 23 01 00 00\s+\{nf\} idiv BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 bc 80 23 01 00 00\s+\{nf\} idiv WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 bc 80 23 01 00 00\s+\{nf\} idiv DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 bc 80 23 01 00 00\s+\{nf\} idiv QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 eb\s+\{nf\} imul bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 ea\s+\{nf\} imul dx
+\s*[a-f0-9]+:\s*62 f4 7d 0c af c2\s+\{nf\} imul ax,dx
+\s*[a-f0-9]+:\s*62 f4 35 1c af c2\s+\{nf\} imul r9w,ax,dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 e9\s+\{nf\} imul ecx
+\s*[a-f0-9]+:\s*62 f4 7c 0c af d1\s+\{nf\} imul edx,ecx
+\s*[a-f0-9]+:\s*62 f4 2c 1c af d1\s+\{nf\} imul r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 e9\s+\{nf\} imul r9
+\s*[a-f0-9]+:\s*62 44 fc 0c af f9\s+\{nf\} imul r31,r9
+\s*[a-f0-9]+:\s*62 44 a4 1c af f9\s+\{nf\} imul r11,r31,r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 ac 80 23 01 00 00\s+\{nf\} imul BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 ac 80 23 01 00 00\s+\{nf\} imul WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c af 94 80 23 01 00 00\s+\{nf\} imul dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 1c af 94 80 23 01 00 00\s+\{nf\} imul ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 ac 80 23 01 00 00\s+\{nf\} imul DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c af 8c 80 23 01 00 00\s+\{nf\} imul ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c af 8c 80 23 01 00 00\s+\{nf\} imul edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 ac 80 23 01 00 00\s+\{nf\} imul QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c af 8c 80 23 01 00 00\s+\{nf\} imul r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 84 14 af 8c 80 23 01 00 00\s+\{nf\} imul r31,r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c fe c3\s+\{nf\} inc bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c fe c3\s+\{nf\} inc dl,bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c ff c2\s+\{nf\} inc dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c ff c2\s+\{nf\} inc ax,dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c ff c1\s+\{nf\} inc ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c ff c1\s+\{nf\} inc edx,ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff c1\s+\{nf\} inc r9
+\s*[a-f0-9]+:\s*62 d4 84 14 ff c1\s+\{nf\} inc r31,r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c fe 84 80 23 01 00 00\s+\{nf\} inc BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 64 1c fe 84 80 23 01 00 00\s+\{nf\} inc bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c ff 84 80 23 01 00 00\s+\{nf\} inc WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6d 1c ff 84 80 23 01 00 00\s+\{nf\} inc dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c ff 84 80 23 01 00 00\s+\{nf\} inc DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 74 1c ff 84 80 23 01 00 00\s+\{nf\} inc ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff 84 80 23 01 00 00\s+\{nf\} inc QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 b4 1c ff 84 80 23 01 00 00\s+\{nf\} inc r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7d 0c f5 c2\s+\{nf\} lzcnt ax,dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f5 d1\s+\{nf\} lzcnt edx,ecx
+\s*[a-f0-9]+:\s*62 44 fc 0c f5 f9\s+\{nf\} lzcnt r31,r9
+\s*[a-f0-9]+:\s*62 d4 7d 0c f5 94 80 23 01 00 00\s+\{nf\} lzcnt dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c f5 8c 80 23 01 00 00\s+\{nf\} lzcnt ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c f5 8c 80 23 01 00 00\s+\{nf\} lzcnt r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 e3\s+\{nf\} mul bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 e2\s+\{nf\} mul dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 e1\s+\{nf\} mul ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 e1\s+\{nf\} mul r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 a4 80 23 01 00 00\s+\{nf\} mul BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 a4 80 23 01 00 00\s+\{nf\} mul WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 a4 80 23 01 00 00\s+\{nf\} mul DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 a4 80 23 01 00 00\s+\{nf\} mul QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 db\s+\{nf\} neg bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c f6 db\s+\{nf\} neg dl,bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 da\s+\{nf\} neg dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c f7 da\s+\{nf\} neg ax,dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 d9\s+\{nf\} neg ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c f7 d9\s+\{nf\} neg edx,ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 d9\s+\{nf\} neg r9
+\s*[a-f0-9]+:\s*62 d4 84 14 f7 d9\s+\{nf\} neg r31,r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 9c 80 23 01 00 00\s+\{nf\} neg BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 64 1c f6 9c 80 23 01 00 00\s+\{nf\} neg bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 9c 80 23 01 00 00\s+\{nf\} neg WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6d 1c f7 9c 80 23 01 00 00\s+\{nf\} neg dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 9c 80 23 01 00 00\s+\{nf\} neg DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 74 1c f7 9c 80 23 01 00 00\s+\{nf\} neg ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 9c 80 23 01 00 00\s+\{nf\} neg QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 b4 1c f7 9c 80 23 01 00 00\s+\{nf\} neg r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 cb 7b\s+\{nf\} or bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 cb 7b\s+\{nf\} or dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 ca 7b\s+\{nf\} or dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 ca 7b\s+\{nf\} or ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 c9 7b\s+\{nf\} or ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 c9 7b\s+\{nf\} or edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 c9 7b\s+\{nf\} or r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 83 c9 7b\s+\{nf\} or r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 8c 80 23 01 00 00 7b\s+\{nf\} or BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 8c 80 23 01 00 00 7b\s+\{nf\} or bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 8c 80 23 01 00 00 7b\s+\{nf\} or WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 8c 80 23 01 00 00 7b\s+\{nf\} or dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 8c 80 23 01 00 00 7b\s+\{nf\} or DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 8c 80 23 01 00 00 7b\s+\{nf\} or ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 8c 80 23 01 00 00 7b\s+\{nf\} or QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 8c 80 23 01 00 00 7b\s+\{nf\} or r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 08 da\s+\{nf\} or dl,bl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 08 da\s+\{nf\} or r8b,dl,bl
+\s*[a-f0-9]+:\s*62 d4 7c 0c 08 9c 80 23 01 00 00\s+\{nf\} or BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 08 9c 80 23 01 00 00\s+\{nf\} or dl,BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 09 d0\s+\{nf\} or ax,dx
+\s*[a-f0-9]+:\s*62 f4 35 1c 09 d0\s+\{nf\} or r9w,ax,dx
+\s*[a-f0-9]+:\s*62 d4 7d 0c 09 94 80 23 01 00 00\s+\{nf\} or WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 09 94 80 23 01 00 00\s+\{nf\} or ax,WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c 09 ca\s+\{nf\} or edx,ecx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 09 ca\s+\{nf\} or r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 09 8c 80 23 01 00 00\s+\{nf\} or DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 09 8c 80 23 01 00 00\s+\{nf\} or edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 5c fc 0c 09 cf\s+\{nf\} or r31,r9
+\s*[a-f0-9]+:\s*62 5c a4 1c 09 cf\s+\{nf\} or r11,r31,r9
+\s*[a-f0-9]+:\s*62 54 fc 0c 09 8c 80 23 01 00 00\s+\{nf\} or QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 54 84 14 09 8c 80 23 01 00 00\s+\{nf\} or r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c 0a 9c 80 23 01 00 00\s+\{nf\} or bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 0a 9c 80 23 01 00 00\s+\{nf\} or dl,bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c 0b 94 80 23 01 00 00\s+\{nf\} or dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 1c 0b 94 80 23 01 00 00\s+\{nf\} or ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c 0b 8c 80 23 01 00 00\s+\{nf\} or ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 0b 8c 80 23 01 00 00\s+\{nf\} or edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c 0b 8c 80 23 01 00 00\s+\{nf\} or r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 84 14 0b 8c 80 23 01 00 00\s+\{nf\} or r31,r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7d 0c 88 c2\s+\{nf\} popcnt ax,dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c 88 d1\s+\{nf\} popcnt edx,ecx
+\s*[a-f0-9]+:\s*62 44 fc 0c 88 f9\s+\{nf\} popcnt r31,r9
+\s*[a-f0-9]+:\s*62 d4 7d 0c 88 94 80 23 01 00 00\s+\{nf\} popcnt dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c 88 8c 80 23 01 00 00\s+\{nf\} popcnt ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c 88 8c 80 23 01 00 00\s+\{nf\} popcnt r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 c3\s+\{nf\} rol bl,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 c3\s+\{nf\} rol dl,bl,1
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 c2\s+\{nf\} rol dx,1
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 c2\s+\{nf\} rol ax,dx,1
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 c1\s+\{nf\} rol ecx,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 c1\s+\{nf\} rol edx,ecx,1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 c1\s+\{nf\} rol r9,1
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 c1\s+\{nf\} rol r31,r9,1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 84 80 23 01 00 00\s+\{nf\} rol BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 84 80 23 01 00 00\s+\{nf\} rol bl,BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 84 80 23 01 00 00\s+\{nf\} rol WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 84 80 23 01 00 00\s+\{nf\} rol dx,WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 84 80 23 01 00 00\s+\{nf\} rol DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 84 80 23 01 00 00\s+\{nf\} rol ecx,DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 84 80 23 01 00 00\s+\{nf\} rol QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 84 80 23 01 00 00\s+\{nf\} rol r9,QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 c3 7b\s+\{nf\} rol bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 c3 7b\s+\{nf\} rol dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 c2 7b\s+\{nf\} rol dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 c2 7b\s+\{nf\} rol ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 c1 7b\s+\{nf\} rol ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 c1 7b\s+\{nf\} rol edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 c1 7b\s+\{nf\} rol r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 c1 7b\s+\{nf\} rol r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 84 80 23 01 00 00 7b\s+\{nf\} rol BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 84 80 23 01 00 00 7b\s+\{nf\} rol bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 84 80 23 01 00 00 7b\s+\{nf\} rol WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 84 80 23 01 00 00 7b\s+\{nf\} rol dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 84 80 23 01 00 00 7b\s+\{nf\} rol DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 84 80 23 01 00 00 7b\s+\{nf\} rol ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 84 80 23 01 00 00 7b\s+\{nf\} rol QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 84 80 23 01 00 00 7b\s+\{nf\} rol r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 c3\s+\{nf\} rol bl,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 c3\s+\{nf\} rol dl,bl,cl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 c2\s+\{nf\} rol dx,cl
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 c2\s+\{nf\} rol ax,dx,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 c1\s+\{nf\} rol ecx,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 c1\s+\{nf\} rol edx,ecx,cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 c1\s+\{nf\} rol r9,cl
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 c1\s+\{nf\} rol r31,r9,cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 84 80 23 01 00 00\s+\{nf\} rol BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 84 80 23 01 00 00\s+\{nf\} rol bl,BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 84 80 23 01 00 00\s+\{nf\} rol WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 84 80 23 01 00 00\s+\{nf\} rol dx,WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 84 80 23 01 00 00\s+\{nf\} rol DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 84 80 23 01 00 00\s+\{nf\} rol ecx,DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 84 80 23 01 00 00\s+\{nf\} rol QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 84 80 23 01 00 00\s+\{nf\} rol r9,QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 cb\s+\{nf\} ror bl,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 cb\s+\{nf\} ror dl,bl,1
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 ca\s+\{nf\} ror dx,1
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 ca\s+\{nf\} ror ax,dx,1
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 c9\s+\{nf\} ror ecx,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 c9\s+\{nf\} ror edx,ecx,1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 c9\s+\{nf\} ror r9,1
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 c9\s+\{nf\} ror r31,r9,1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 8c 80 23 01 00 00\s+\{nf\} ror BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 8c 80 23 01 00 00\s+\{nf\} ror bl,BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 8c 80 23 01 00 00\s+\{nf\} ror WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 8c 80 23 01 00 00\s+\{nf\} ror dx,WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 8c 80 23 01 00 00\s+\{nf\} ror DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 8c 80 23 01 00 00\s+\{nf\} ror ecx,DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 8c 80 23 01 00 00\s+\{nf\} ror QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 8c 80 23 01 00 00\s+\{nf\} ror r9,QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 cb 7b\s+\{nf\} ror bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 cb 7b\s+\{nf\} ror dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 ca 7b\s+\{nf\} ror dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 ca 7b\s+\{nf\} ror ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 c9 7b\s+\{nf\} ror ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 c9 7b\s+\{nf\} ror edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 c9 7b\s+\{nf\} ror r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 c9 7b\s+\{nf\} ror r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 8c 80 23 01 00 00 7b\s+\{nf\} ror BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 8c 80 23 01 00 00 7b\s+\{nf\} ror bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 8c 80 23 01 00 00 7b\s+\{nf\} ror WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 8c 80 23 01 00 00 7b\s+\{nf\} ror dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 8c 80 23 01 00 00 7b\s+\{nf\} ror DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 8c 80 23 01 00 00 7b\s+\{nf\} ror ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 8c 80 23 01 00 00 7b\s+\{nf\} ror QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 8c 80 23 01 00 00 7b\s+\{nf\} ror r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 cb\s+\{nf\} ror bl,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 cb\s+\{nf\} ror dl,bl,cl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 ca\s+\{nf\} ror dx,cl
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 ca\s+\{nf\} ror ax,dx,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 c9\s+\{nf\} ror ecx,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 c9\s+\{nf\} ror edx,ecx,cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 c9\s+\{nf\} ror r9,cl
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 c9\s+\{nf\} ror r31,r9,cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 8c 80 23 01 00 00\s+\{nf\} ror BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 8c 80 23 01 00 00\s+\{nf\} ror bl,BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 8c 80 23 01 00 00\s+\{nf\} ror WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 8c 80 23 01 00 00\s+\{nf\} ror dx,WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 8c 80 23 01 00 00\s+\{nf\} ror DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 8c 80 23 01 00 00\s+\{nf\} ror ecx,DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 8c 80 23 01 00 00\s+\{nf\} ror QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 8c 80 23 01 00 00\s+\{nf\} ror r9,QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 fb\s+\{nf\} sar bl,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 fb\s+\{nf\} sar dl,bl,1
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 fa\s+\{nf\} sar dx,1
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 fa\s+\{nf\} sar ax,dx,1
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 f9\s+\{nf\} sar ecx,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 f9\s+\{nf\} sar edx,ecx,1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 f9\s+\{nf\} sar r9,1
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 f9\s+\{nf\} sar r31,r9,1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 bc 80 23 01 00 00\s+\{nf\} sar BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 bc 80 23 01 00 00\s+\{nf\} sar bl,BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 bc 80 23 01 00 00\s+\{nf\} sar WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 bc 80 23 01 00 00\s+\{nf\} sar dx,WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 bc 80 23 01 00 00\s+\{nf\} sar DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 bc 80 23 01 00 00\s+\{nf\} sar ecx,DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 bc 80 23 01 00 00\s+\{nf\} sar QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 bc 80 23 01 00 00\s+\{nf\} sar r9,QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 fb 7b\s+\{nf\} sar bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 fb 7b\s+\{nf\} sar dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 fa 7b\s+\{nf\} sar dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 fa 7b\s+\{nf\} sar ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 f9 7b\s+\{nf\} sar ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 f9 7b\s+\{nf\} sar edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 f9 7b\s+\{nf\} sar r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 f9 7b\s+\{nf\} sar r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 bc 80 23 01 00 00 7b\s+\{nf\} sar BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 bc 80 23 01 00 00 7b\s+\{nf\} sar bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 bc 80 23 01 00 00 7b\s+\{nf\} sar WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 bc 80 23 01 00 00 7b\s+\{nf\} sar dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 bc 80 23 01 00 00 7b\s+\{nf\} sar DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 bc 80 23 01 00 00 7b\s+\{nf\} sar ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 bc 80 23 01 00 00 7b\s+\{nf\} sar QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 bc 80 23 01 00 00 7b\s+\{nf\} sar r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 fb\s+\{nf\} sar bl,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 fb\s+\{nf\} sar dl,bl,cl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 fa\s+\{nf\} sar dx,cl
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 fa\s+\{nf\} sar ax,dx,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 f9\s+\{nf\} sar ecx,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 f9\s+\{nf\} sar edx,ecx,cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 f9\s+\{nf\} sar r9,cl
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 f9\s+\{nf\} sar r31,r9,cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 bc 80 23 01 00 00\s+\{nf\} sar BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 bc 80 23 01 00 00\s+\{nf\} sar bl,BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 bc 80 23 01 00 00\s+\{nf\} sar WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 bc 80 23 01 00 00\s+\{nf\} sar dx,WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 bc 80 23 01 00 00\s+\{nf\} sar DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 bc 80 23 01 00 00\s+\{nf\} sar ecx,DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 bc 80 23 01 00 00\s+\{nf\} sar QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 bc 80 23 01 00 00\s+\{nf\} sar r9,QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 e3\s+\{nf\} shl bl,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 e3\s+\{nf\} shl dl,bl,1
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 e2\s+\{nf\} shl dx,1
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 e2\s+\{nf\} shl ax,dx,1
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 e1\s+\{nf\} shl ecx,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 e1\s+\{nf\} shl edx,ecx,1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 e1\s+\{nf\} shl r9,1
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 e1\s+\{nf\} shl r31,r9,1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 a4 80 23 01 00 00\s+\{nf\} shl BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 a4 80 23 01 00 00\s+\{nf\} shl bl,BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 a4 80 23 01 00 00\s+\{nf\} shl WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 a4 80 23 01 00 00\s+\{nf\} shl dx,WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 a4 80 23 01 00 00\s+\{nf\} shl DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 a4 80 23 01 00 00\s+\{nf\} shl ecx,DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 a4 80 23 01 00 00\s+\{nf\} shl QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 a4 80 23 01 00 00\s+\{nf\} shl r9,QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 e3 7b\s+\{nf\} shl bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 e3 7b\s+\{nf\} shl dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 e2 7b\s+\{nf\} shl dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 e2 7b\s+\{nf\} shl ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 e1 7b\s+\{nf\} shl ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 e1 7b\s+\{nf\} shl edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 e1 7b\s+\{nf\} shl r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 e1 7b\s+\{nf\} shl r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 a4 80 23 01 00 00 7b\s+\{nf\} shl BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 a4 80 23 01 00 00 7b\s+\{nf\} shl bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 a4 80 23 01 00 00 7b\s+\{nf\} shl WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 a4 80 23 01 00 00 7b\s+\{nf\} shl dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 a4 80 23 01 00 00 7b\s+\{nf\} shl DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 a4 80 23 01 00 00 7b\s+\{nf\} shl ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 a4 80 23 01 00 00 7b\s+\{nf\} shl QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 a4 80 23 01 00 00 7b\s+\{nf\} shl r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 e3\s+\{nf\} shl bl,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 e3\s+\{nf\} shl dl,bl,cl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 e2\s+\{nf\} shl dx,cl
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 e2\s+\{nf\} shl ax,dx,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 e1\s+\{nf\} shl ecx,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 e1\s+\{nf\} shl edx,ecx,cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 e1\s+\{nf\} shl r9,cl
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 e1\s+\{nf\} shl r31,r9,cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 a4 80 23 01 00 00\s+\{nf\} shl BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 a4 80 23 01 00 00\s+\{nf\} shl bl,BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 a4 80 23 01 00 00\s+\{nf\} shl WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 a4 80 23 01 00 00\s+\{nf\} shl dx,WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 a4 80 23 01 00 00\s+\{nf\} shl DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 a4 80 23 01 00 00\s+\{nf\} shl ecx,DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 a4 80 23 01 00 00\s+\{nf\} shl QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 a4 80 23 01 00 00\s+\{nf\} shl r9,QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 24 d0 7b\s+\{nf\} shld ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 35 1c 24 d0 7b\s+\{nf\} shld r9w,ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c 24 94 80 23 01 00 00 7b\s+\{nf\} shld WORD PTR \[r8\+rax\*4\+0x123\],dx,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 1c 24 94 80 23 01 00 00 7b\s+\{nf\} shld ax,WORD PTR \[r8\+rax\*4\+0x123\],dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 24 ca 7b\s+\{nf\} shld edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 2c 1c 24 ca 7b\s+\{nf\} shld r10d,edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 24 8c 80 23 01 00 00 7b\s+\{nf\} shld DWORD PTR \[r8\+rax\*4\+0x123\],ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 6c 1c 24 8c 80 23 01 00 00 7b\s+\{nf\} shld edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx,0x7b
+\s*[a-f0-9]+:\s*62 5c fc 0c 24 cf 7b\s+\{nf\} shld r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 5c a4 1c 24 cf 7b\s+\{nf\} shld r11,r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 0c 24 8c 80 23 01 00 00 7b\s+\{nf\} shld QWORD PTR \[r8\+rax\*4\+0x123\],r9,0x7b
+\s*[a-f0-9]+:\s*62 54 84 14 24 8c 80 23 01 00 00 7b\s+\{nf\} shld r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c a5 d0\s+\{nf\} shld ax,dx,cl
+\s*[a-f0-9]+:\s*62 f4 35 1c a5 d0\s+\{nf\} shld r9w,ax,dx,cl
+\s*[a-f0-9]+:\s*62 d4 7d 0c a5 94 80 23 01 00 00\s+\{nf\} shld WORD PTR \[r8\+rax\*4\+0x123\],dx,cl
+\s*[a-f0-9]+:\s*62 d4 7d 1c a5 94 80 23 01 00 00\s+\{nf\} shld ax,WORD PTR \[r8\+rax\*4\+0x123\],dx,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c a5 ca\s+\{nf\} shld edx,ecx,cl
+\s*[a-f0-9]+:\s*62 f4 2c 1c a5 ca\s+\{nf\} shld r10d,edx,ecx,cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c a5 8c 80 23 01 00 00\s+\{nf\} shld DWORD PTR \[r8\+rax\*4\+0x123\],ecx,cl
+\s*[a-f0-9]+:\s*62 d4 6c 1c a5 8c 80 23 01 00 00\s+\{nf\} shld edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx,cl
+\s*[a-f0-9]+:\s*62 5c fc 0c a5 cf\s+\{nf\} shld r31,r9,cl
+\s*[a-f0-9]+:\s*62 5c a4 1c a5 cf\s+\{nf\} shld r11,r31,r9,cl
+\s*[a-f0-9]+:\s*62 54 fc 0c a5 8c 80 23 01 00 00\s+\{nf\} shld QWORD PTR \[r8\+rax\*4\+0x123\],r9,cl
+\s*[a-f0-9]+:\s*62 54 84 14 a5 8c 80 23 01 00 00\s+\{nf\} shld r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 eb\s+\{nf\} shr bl,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 eb\s+\{nf\} shr dl,bl,1
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 ea\s+\{nf\} shr dx,1
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 ea\s+\{nf\} shr ax,dx,1
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 e9\s+\{nf\} shr ecx,1
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 e9\s+\{nf\} shr edx,ecx,1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 e9\s+\{nf\} shr r9,1
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 e9\s+\{nf\} shr r31,r9,1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 ac 80 23 01 00 00\s+\{nf\} shr BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 ac 80 23 01 00 00\s+\{nf\} shr bl,BYTE PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 ac 80 23 01 00 00\s+\{nf\} shr WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 ac 80 23 01 00 00\s+\{nf\} shr dx,WORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 ac 80 23 01 00 00\s+\{nf\} shr DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 ac 80 23 01 00 00\s+\{nf\} shr ecx,DWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 ac 80 23 01 00 00\s+\{nf\} shr QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 ac 80 23 01 00 00\s+\{nf\} shr r9,QWORD PTR \[r8\+rax\*4\+0x123\],1
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 eb 7b\s+\{nf\} shr bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 eb 7b\s+\{nf\} shr dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 ea 7b\s+\{nf\} shr dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 ea 7b\s+\{nf\} shr ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 e9 7b\s+\{nf\} shr ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 e9 7b\s+\{nf\} shr edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 e9 7b\s+\{nf\} shr r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 e9 7b\s+\{nf\} shr r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 ac 80 23 01 00 00 7b\s+\{nf\} shr BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 ac 80 23 01 00 00 7b\s+\{nf\} shr bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 ac 80 23 01 00 00 7b\s+\{nf\} shr WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 ac 80 23 01 00 00 7b\s+\{nf\} shr dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 ac 80 23 01 00 00 7b\s+\{nf\} shr DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 ac 80 23 01 00 00 7b\s+\{nf\} shr ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 ac 80 23 01 00 00 7b\s+\{nf\} shr QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 ac 80 23 01 00 00 7b\s+\{nf\} shr r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 eb\s+\{nf\} shr bl,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 eb\s+\{nf\} shr dl,bl,cl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 ea\s+\{nf\} shr dx,cl
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 ea\s+\{nf\} shr ax,dx,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 e9\s+\{nf\} shr ecx,cl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 e9\s+\{nf\} shr edx,ecx,cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 e9\s+\{nf\} shr r9,cl
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 e9\s+\{nf\} shr r31,r9,cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 ac 80 23 01 00 00\s+\{nf\} shr BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 ac 80 23 01 00 00\s+\{nf\} shr bl,BYTE PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 ac 80 23 01 00 00\s+\{nf\} shr WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 ac 80 23 01 00 00\s+\{nf\} shr dx,WORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 ac 80 23 01 00 00\s+\{nf\} shr DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 ac 80 23 01 00 00\s+\{nf\} shr ecx,DWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 ac 80 23 01 00 00\s+\{nf\} shr QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 ac 80 23 01 00 00\s+\{nf\} shr r9,QWORD PTR \[r8\+rax\*4\+0x123\],cl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 2c d0 7b\s+\{nf\} shrd ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 35 1c 2c d0 7b\s+\{nf\} shrd r9w,ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c 2c 94 80 23 01 00 00 7b\s+\{nf\} shrd WORD PTR \[r8\+rax\*4\+0x123\],dx,0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 1c 2c 94 80 23 01 00 00 7b\s+\{nf\} shrd ax,WORD PTR \[r8\+rax\*4\+0x123\],dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 2c ca 7b\s+\{nf\} shrd edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 2c 1c 2c ca 7b\s+\{nf\} shrd r10d,edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd DWORD PTR \[r8\+rax\*4\+0x123\],ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 6c 1c 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx,0x7b
+\s*[a-f0-9]+:\s*62 5c fc 0c 2c cf 7b\s+\{nf\} shrd r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 5c a4 1c 2c cf 7b\s+\{nf\} shrd r11,r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 54 fc 0c 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd QWORD PTR \[r8\+rax\*4\+0x123\],r9,0x7b
+\s*[a-f0-9]+:\s*62 54 84 14 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c ad d0\s+\{nf\} shrd ax,dx,cl
+\s*[a-f0-9]+:\s*62 f4 35 1c ad d0\s+\{nf\} shrd r9w,ax,dx,cl
+\s*[a-f0-9]+:\s*62 d4 7d 0c ad 94 80 23 01 00 00\s+\{nf\} shrd WORD PTR \[r8\+rax\*4\+0x123\],dx,cl
+\s*[a-f0-9]+:\s*62 d4 7d 1c ad 94 80 23 01 00 00\s+\{nf\} shrd ax,WORD PTR \[r8\+rax\*4\+0x123\],dx,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c ad ca\s+\{nf\} shrd edx,ecx,cl
+\s*[a-f0-9]+:\s*62 f4 2c 1c ad ca\s+\{nf\} shrd r10d,edx,ecx,cl
+\s*[a-f0-9]+:\s*62 d4 7c 0c ad 8c 80 23 01 00 00\s+\{nf\} shrd DWORD PTR \[r8\+rax\*4\+0x123\],ecx,cl
+\s*[a-f0-9]+:\s*62 d4 6c 1c ad 8c 80 23 01 00 00\s+\{nf\} shrd edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx,cl
+\s*[a-f0-9]+:\s*62 5c fc 0c ad cf\s+\{nf\} shrd r31,r9,cl
+\s*[a-f0-9]+:\s*62 5c a4 1c ad cf\s+\{nf\} shrd r11,r31,r9,cl
+\s*[a-f0-9]+:\s*62 54 fc 0c ad 8c 80 23 01 00 00\s+\{nf\} shrd QWORD PTR \[r8\+rax\*4\+0x123\],r9,cl
+\s*[a-f0-9]+:\s*62 54 84 14 ad 8c 80 23 01 00 00\s+\{nf\} shrd r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9,cl
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 eb 7b\s+\{nf\} sub bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 eb 7b\s+\{nf\} sub dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 ea 7b\s+\{nf\} sub dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 ea 7b\s+\{nf\} sub ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 e9 7b\s+\{nf\} sub ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 e9 7b\s+\{nf\} sub edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 e9 7b\s+\{nf\} sub r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 83 e9 7b\s+\{nf\} sub r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 ac 80 23 01 00 00 7b\s+\{nf\} sub BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 ac 80 23 01 00 00 7b\s+\{nf\} sub bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 ac 80 23 01 00 00 7b\s+\{nf\} sub WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 ac 80 23 01 00 00 7b\s+\{nf\} sub dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 ac 80 23 01 00 00 7b\s+\{nf\} sub DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 ac 80 23 01 00 00 7b\s+\{nf\} sub ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 ac 80 23 01 00 00 7b\s+\{nf\} sub QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 ac 80 23 01 00 00 7b\s+\{nf\} sub r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 28 da\s+\{nf\} sub dl,bl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 28 da\s+\{nf\} sub r8b,dl,bl
+\s*[a-f0-9]+:\s*62 d4 7c 0c 28 9c 80 23 01 00 00\s+\{nf\} sub BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 28 9c 80 23 01 00 00\s+\{nf\} sub dl,BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 29 d0\s+\{nf\} sub ax,dx
+\s*[a-f0-9]+:\s*62 f4 35 1c 29 d0\s+\{nf\} sub r9w,ax,dx
+\s*[a-f0-9]+:\s*62 d4 7d 0c 29 94 80 23 01 00 00\s+\{nf\} sub WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 29 94 80 23 01 00 00\s+\{nf\} sub ax,WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c 29 ca\s+\{nf\} sub edx,ecx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 29 ca\s+\{nf\} sub r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 29 8c 80 23 01 00 00\s+\{nf\} sub DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 29 8c 80 23 01 00 00\s+\{nf\} sub edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 5c fc 0c 29 cf\s+\{nf\} sub r31,r9
+\s*[a-f0-9]+:\s*62 5c a4 1c 29 cf\s+\{nf\} sub r11,r31,r9
+\s*[a-f0-9]+:\s*62 54 fc 0c 29 8c 80 23 01 00 00\s+\{nf\} sub QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 54 84 14 29 8c 80 23 01 00 00\s+\{nf\} sub r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c 2a 9c 80 23 01 00 00\s+\{nf\} sub bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 2a 9c 80 23 01 00 00\s+\{nf\} sub dl,bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c 2b 94 80 23 01 00 00\s+\{nf\} sub dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 1c 2b 94 80 23 01 00 00\s+\{nf\} sub ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c 2b 8c 80 23 01 00 00\s+\{nf\} sub ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 2b 8c 80 23 01 00 00\s+\{nf\} sub edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c 2b 8c 80 23 01 00 00\s+\{nf\} sub r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 84 14 2b 8c 80 23 01 00 00\s+\{nf\} sub r31,r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7d 0c f4 c2\s+\{nf\} tzcnt ax,dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f4 d1\s+\{nf\} tzcnt edx,ecx
+\s*[a-f0-9]+:\s*62 44 fc 0c f4 f9\s+\{nf\} tzcnt r31,r9
+\s*[a-f0-9]+:\s*62 d4 7d 0c f4 94 80 23 01 00 00\s+\{nf\} tzcnt dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c f4 8c 80 23 01 00 00\s+\{nf\} tzcnt ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c f4 8c 80 23 01 00 00\s+\{nf\} tzcnt r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 f3 7b\s+\{nf\} xor bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 f3 7b\s+\{nf\} xor dl,bl,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 f2 7b\s+\{nf\} xor dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 f2 7b\s+\{nf\} xor ax,dx,0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 f1 7b\s+\{nf\} xor ecx,0x7b
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 f1 7b\s+\{nf\} xor edx,ecx,0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 f1 7b\s+\{nf\} xor r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 84 14 83 f1 7b\s+\{nf\} xor r31,r9,0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 b4 80 23 01 00 00 7b\s+\{nf\} xor BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 b4 80 23 01 00 00 7b\s+\{nf\} xor bl,BYTE PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 b4 80 23 01 00 00 7b\s+\{nf\} xor WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 b4 80 23 01 00 00 7b\s+\{nf\} xor dx,WORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 b4 80 23 01 00 00 7b\s+\{nf\} xor DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 b4 80 23 01 00 00 7b\s+\{nf\} xor ecx,DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 b4 80 23 01 00 00 7b\s+\{nf\} xor QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 b4 80 23 01 00 00 7b\s+\{nf\} xor r9,QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
+\s*[a-f0-9]+:\s*62 f4 7c 0c 30 da\s+\{nf\} xor dl,bl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 30 da\s+\{nf\} xor r8b,dl,bl
+\s*[a-f0-9]+:\s*62 d4 7c 0c 30 9c 80 23 01 00 00\s+\{nf\} xor BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 30 9c 80 23 01 00 00\s+\{nf\} xor dl,BYTE PTR \[r8\+rax\*4\+0x123\],bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 31 d0\s+\{nf\} xor ax,dx
+\s*[a-f0-9]+:\s*62 f4 35 1c 31 d0\s+\{nf\} xor r9w,ax,dx
+\s*[a-f0-9]+:\s*62 d4 7d 0c 31 94 80 23 01 00 00\s+\{nf\} xor WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 31 94 80 23 01 00 00\s+\{nf\} xor ax,WORD PTR \[r8\+rax\*4\+0x123\],dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c 31 ca\s+\{nf\} xor edx,ecx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 31 ca\s+\{nf\} xor r10d,edx,ecx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 31 8c 80 23 01 00 00\s+\{nf\} xor DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 31 8c 80 23 01 00 00\s+\{nf\} xor edx,DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+\s*[a-f0-9]+:\s*62 5c fc 0c 31 cf\s+\{nf\} xor r31,r9
+\s*[a-f0-9]+:\s*62 5c a4 1c 31 cf\s+\{nf\} xor r11,r31,r9
+\s*[a-f0-9]+:\s*62 54 fc 0c 31 8c 80 23 01 00 00\s+\{nf\} xor QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 54 84 14 31 8c 80 23 01 00 00\s+\{nf\} xor r31,QWORD PTR \[r8\+rax\*4\+0x123\],r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c 32 9c 80 23 01 00 00\s+\{nf\} xor bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 32 9c 80 23 01 00 00\s+\{nf\} xor dl,bl,BYTE PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 0c 33 94 80 23 01 00 00\s+\{nf\} xor dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7d 1c 33 94 80 23 01 00 00\s+\{nf\} xor ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 7c 0c 33 8c 80 23 01 00 00\s+\{nf\} xor ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 d4 6c 1c 33 8c 80 23 01 00 00\s+\{nf\} xor edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 fc 0c 33 8c 80 23 01 00 00\s+\{nf\} xor r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+\s*[a-f0-9]+:\s*62 54 84 14 33 8c 80 23 01 00 00\s+\{nf\} xor r31,r9,QWORD PTR \[r8\+rax\*4\+0x123\]
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-nf.d b/gas/testsuite/gas/i386/x86-64-apx-nf.d
new file mode 100644
index 00000000000..ba166e9a98f
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-nf.d
@@ -0,0 +1,633 @@
+#as:
+#objdump: -dw
+#name: x86_64 APX_F insns
+#source: x86-64-apx-nf.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 c3 7b\s+\{nf\} add \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 c3 7b\s+\{nf\} add \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 c2 7b\s+\{nf\} add \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 c2 7b\s+\{nf\} add \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 c1 7b\s+\{nf\} add \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 c1 7b\s+\{nf\} add \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 c1 7b\s+\{nf\} add \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 83 c1 7b\s+\{nf\} add \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 84 80 23 01 00 00 7b\s+\{nf\} addb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 84 80 23 01 00 00 7b\s+\{nf\} addb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 84 80 23 01 00 00 7b\s+\{nf\} addw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 84 80 23 01 00 00 7b\s+\{nf\} addw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 84 80 23 01 00 00 7b\s+\{nf\} addl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 84 80 23 01 00 00 7b\s+\{nf\} addl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 84 80 23 01 00 00 7b\s+\{nf\} addq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 84 80 23 01 00 00 7b\s+\{nf\} addq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c 00 da\s+\{nf\} add %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 00 da\s+\{nf\} add %bl,%dl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 00 9c 80 23 01 00 00\s+\{nf\} add %bl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 00 9c 80 23 01 00 00\s+\{nf\} add %bl,0x123\(%r8,%rax,4\),%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 01 d0\s+\{nf\} add %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c 01 d0\s+\{nf\} add %dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c 01 94 80 23 01 00 00\s+\{nf\} add %dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c 01 94 80 23 01 00 00\s+\{nf\} add %dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 01 ca\s+\{nf\} add %ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 01 ca\s+\{nf\} add %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c 01 8c 80 23 01 00 00\s+\{nf\} add %ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 01 8c 80 23 01 00 00\s+\{nf\} add %ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c 01 cf\s+\{nf\} add %r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c 01 cf\s+\{nf\} add %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c 01 8c 80 23 01 00 00\s+\{nf\} add %r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 01 8c 80 23 01 00 00\s+\{nf\} add %r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 02 9c 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 02 9c 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%bl,%dl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 03 94 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 03 94 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%dx,%ax
+\s*[a-f0-9]+:\s*62 d4 7c 0c 03 8c 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 03 8c 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%ecx,%edx
+\s*[a-f0-9]+:\s*62 54 fc 0c 03 8c 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 54 84 14 03 8c 80 23 01 00 00\s+\{nf\} add 0x123\(%r8,%rax,4\),%r9,%r31
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 e3 7b\s+\{nf\} and \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 e3 7b\s+\{nf\} and \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 e2 7b\s+\{nf\} and \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 e2 7b\s+\{nf\} and \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 e1 7b\s+\{nf\} and \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 e1 7b\s+\{nf\} and \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 e1 7b\s+\{nf\} and \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 83 e1 7b\s+\{nf\} and \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 a4 80 23 01 00 00 7b\s+\{nf\} andb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 a4 80 23 01 00 00 7b\s+\{nf\} andb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 a4 80 23 01 00 00 7b\s+\{nf\} andw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 a4 80 23 01 00 00 7b\s+\{nf\} andw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 a4 80 23 01 00 00 7b\s+\{nf\} andl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 a4 80 23 01 00 00 7b\s+\{nf\} andl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 a4 80 23 01 00 00 7b\s+\{nf\} andq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 a4 80 23 01 00 00 7b\s+\{nf\} andq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c 20 da\s+\{nf\} and %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 20 da\s+\{nf\} and %bl,%dl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 20 9c 80 23 01 00 00\s+\{nf\} and %bl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 20 9c 80 23 01 00 00\s+\{nf\} and %bl,0x123\(%r8,%rax,4\),%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 21 d0\s+\{nf\} and %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c 21 d0\s+\{nf\} and %dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c 21 94 80 23 01 00 00\s+\{nf\} and %dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c 21 94 80 23 01 00 00\s+\{nf\} and %dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 21 ca\s+\{nf\} and %ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 21 ca\s+\{nf\} and %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c 21 8c 80 23 01 00 00\s+\{nf\} and %ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 21 8c 80 23 01 00 00\s+\{nf\} and %ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c 21 cf\s+\{nf\} and %r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c 21 cf\s+\{nf\} and %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c 21 8c 80 23 01 00 00\s+\{nf\} and %r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 21 8c 80 23 01 00 00\s+\{nf\} and %r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 22 9c 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 22 9c 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%bl,%dl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 23 94 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 23 94 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%dx,%ax
+\s*[a-f0-9]+:\s*62 d4 7c 0c 23 8c 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 23 8c 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%ecx,%edx
+\s*[a-f0-9]+:\s*62 54 fc 0c 23 8c 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 54 84 14 23 8c 80 23 01 00 00\s+\{nf\} and 0x123\(%r8,%rax,4\),%r9,%r31
+\s*[a-f0-9]+:\s*62 72 6c 0c f2 d1\s+\{nf\} andn %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 52 84 04 f2 d9\s+\{nf\} andn %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 d2 74 0c f2 94 80 23 01 00 00\s+\{nf\} andn 0x123\(%r8,%rax,4\),%ecx,%edx
+\s*[a-f0-9]+:\s*62 42 b4 0c f2 bc 80 23 01 00 00\s+\{nf\} andn 0x123\(%r8,%rax,4\),%r9,%r31
+\s*[a-f0-9]+:\s*62 72 74 0c f7 d2\s+\{nf\} bextr %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d2 74 0c f7 94 80 23 01 00 00\s+\{nf\} bextr %ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5a b4 0c f7 df\s+\{nf\} bextr %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 42 b4 0c f7 bc 80 23 01 00 00\s+\{nf\} bextr %r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 f2 6c 0c f3 d9\s+\{nf\} blsi %ecx,%edx
+\s*[a-f0-9]+:\s*62 d2 84 04 f3 d9\s+\{nf\} blsi %r9,%r31
+\s*[a-f0-9]+:\s*62 d2 74 0c f3 9c 80 23 01 00 00\s+\{nf\} blsi 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d2 b4 0c f3 9c 80 23 01 00 00\s+\{nf\} blsi 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f2 6c 0c f3 d1\s+\{nf\} blsmsk %ecx,%edx
+\s*[a-f0-9]+:\s*62 d2 84 04 f3 d1\s+\{nf\} blsmsk %r9,%r31
+\s*[a-f0-9]+:\s*62 d2 74 0c f3 94 80 23 01 00 00\s+\{nf\} blsmsk 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d2 b4 0c f3 94 80 23 01 00 00\s+\{nf\} blsmsk 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f2 6c 0c f3 c9\s+\{nf\} blsr %ecx,%edx
+\s*[a-f0-9]+:\s*62 d2 84 04 f3 c9\s+\{nf\} blsr %r9,%r31
+\s*[a-f0-9]+:\s*62 d2 74 0c f3 8c 80 23 01 00 00\s+\{nf\} blsr 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d2 b4 0c f3 8c 80 23 01 00 00\s+\{nf\} blsr 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 72 74 0c f5 d2\s+\{nf\} bzhi %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d2 74 0c f5 94 80 23 01 00 00\s+\{nf\} bzhi %ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5a b4 0c f5 df\s+\{nf\} bzhi %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 42 b4 0c f5 bc 80 23 01 00 00\s+\{nf\} bzhi %r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 f4 7c 0c fe cb\s+\{nf\} dec %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c fe cb\s+\{nf\} dec %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c ff ca\s+\{nf\} dec %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c ff ca\s+\{nf\} dec %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c ff c9\s+\{nf\} dec %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c ff c9\s+\{nf\} dec %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff c9\s+\{nf\} dec %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 ff c9\s+\{nf\} dec %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c fe 8c 80 23 01 00 00\s+\{nf\} decb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c fe 8c 80 23 01 00 00\s+\{nf\} decb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c ff 8c 80 23 01 00 00\s+\{nf\} decw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c ff 8c 80 23 01 00 00\s+\{nf\} decw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c ff 8c 80 23 01 00 00\s+\{nf\} decl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c ff 8c 80 23 01 00 00\s+\{nf\} decl 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff 8c 80 23 01 00 00\s+\{nf\} decq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c ff 8c 80 23 01 00 00\s+\{nf\} decq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 f3\s+\{nf\} div %bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 f2\s+\{nf\} div %dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 f1\s+\{nf\} div %ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 f1\s+\{nf\} div %r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 b4 80 23 01 00 00\s+\{nf\} divb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 b4 80 23 01 00 00\s+\{nf\} divw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 b4 80 23 01 00 00\s+\{nf\} divl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 b4 80 23 01 00 00\s+\{nf\} divq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 fb\s+\{nf\} idiv %bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 fa\s+\{nf\} idiv %dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 f9\s+\{nf\} idiv %ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 f9\s+\{nf\} idiv %r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 bc 80 23 01 00 00\s+\{nf\} idivb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 bc 80 23 01 00 00\s+\{nf\} idivw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 bc 80 23 01 00 00\s+\{nf\} idivl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 bc 80 23 01 00 00\s+\{nf\} idivq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 eb\s+\{nf\} imul %bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 ea\s+\{nf\} imul %dx
+\s*[a-f0-9]+:\s*62 f4 7d 0c af c2\s+\{nf\} imul %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c af c2\s+\{nf\} imul %dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 e9\s+\{nf\} imul %ecx
+\s*[a-f0-9]+:\s*62 f4 7c 0c af d1\s+\{nf\} imul %ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c af d1\s+\{nf\} imul %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 e9\s+\{nf\} imul %r9
+\s*[a-f0-9]+:\s*62 44 fc 0c af f9\s+\{nf\} imul %r9,%r31
+\s*[a-f0-9]+:\s*62 44 a4 1c af f9\s+\{nf\} imul %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 ac 80 23 01 00 00\s+\{nf\} imulb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 ac 80 23 01 00 00\s+\{nf\} imulw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 0c af 94 80 23 01 00 00\s+\{nf\} imul 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c af 94 80 23 01 00 00\s+\{nf\} imul 0x123\(%r8,%rax,4\),%dx,%ax
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 ac 80 23 01 00 00\s+\{nf\} imull 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 0c af 8c 80 23 01 00 00\s+\{nf\} imul 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c af 8c 80 23 01 00 00\s+\{nf\} imul 0x123\(%r8,%rax,4\),%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 ac 80 23 01 00 00\s+\{nf\} imulq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 fc 0c af 8c 80 23 01 00 00\s+\{nf\} imul 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 54 84 14 af 8c 80 23 01 00 00\s+\{nf\} imul 0x123\(%r8,%rax,4\),%r9,%r31
+\s*[a-f0-9]+:\s*62 f4 7c 0c fe c3\s+\{nf\} inc %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c fe c3\s+\{nf\} inc %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c ff c2\s+\{nf\} inc %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c ff c2\s+\{nf\} inc %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c ff c1\s+\{nf\} inc %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c ff c1\s+\{nf\} inc %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff c1\s+\{nf\} inc %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 ff c1\s+\{nf\} inc %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c fe 84 80 23 01 00 00\s+\{nf\} incb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c fe 84 80 23 01 00 00\s+\{nf\} incb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c ff 84 80 23 01 00 00\s+\{nf\} incw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c ff 84 80 23 01 00 00\s+\{nf\} incw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c ff 84 80 23 01 00 00\s+\{nf\} incl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c ff 84 80 23 01 00 00\s+\{nf\} incl 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c ff 84 80 23 01 00 00\s+\{nf\} incq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c ff 84 80 23 01 00 00\s+\{nf\} incq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7d 0c f5 c2\s+\{nf\} lzcnt %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c f5 d1\s+\{nf\} lzcnt %ecx,%edx
+\s*[a-f0-9]+:\s*62 44 fc 0c f5 f9\s+\{nf\} lzcnt %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7d 0c f5 94 80 23 01 00 00\s+\{nf\} lzcnt 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c f5 8c 80 23 01 00 00\s+\{nf\} lzcnt 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 54 fc 0c f5 8c 80 23 01 00 00\s+\{nf\} lzcnt 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 e3\s+\{nf\} mul %bl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 e2\s+\{nf\} mul %dx
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 e1\s+\{nf\} mul %ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 e1\s+\{nf\} mul %r9
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 a4 80 23 01 00 00\s+\{nf\} mulb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 a4 80 23 01 00 00\s+\{nf\} mulw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 a4 80 23 01 00 00\s+\{nf\} mull 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 a4 80 23 01 00 00\s+\{nf\} mulq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 f4 7c 0c f6 db\s+\{nf\} neg %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c f6 db\s+\{nf\} neg %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c f7 da\s+\{nf\} neg %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c f7 da\s+\{nf\} neg %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c f7 d9\s+\{nf\} neg %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c f7 d9\s+\{nf\} neg %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 d9\s+\{nf\} neg %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 f7 d9\s+\{nf\} neg %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c f6 9c 80 23 01 00 00\s+\{nf\} negb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c f6 9c 80 23 01 00 00\s+\{nf\} negb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c f7 9c 80 23 01 00 00\s+\{nf\} negw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c f7 9c 80 23 01 00 00\s+\{nf\} negw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c f7 9c 80 23 01 00 00\s+\{nf\} negl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c f7 9c 80 23 01 00 00\s+\{nf\} negl 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c f7 9c 80 23 01 00 00\s+\{nf\} negq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c f7 9c 80 23 01 00 00\s+\{nf\} negq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 cb 7b\s+\{nf\} or \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 cb 7b\s+\{nf\} or \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 ca 7b\s+\{nf\} or \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 ca 7b\s+\{nf\} or \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 c9 7b\s+\{nf\} or \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 c9 7b\s+\{nf\} or \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 c9 7b\s+\{nf\} or \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 83 c9 7b\s+\{nf\} or \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 8c 80 23 01 00 00 7b\s+\{nf\} orb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 8c 80 23 01 00 00 7b\s+\{nf\} orb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 8c 80 23 01 00 00 7b\s+\{nf\} orw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 8c 80 23 01 00 00 7b\s+\{nf\} orw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 8c 80 23 01 00 00 7b\s+\{nf\} orl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 8c 80 23 01 00 00 7b\s+\{nf\} orl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 8c 80 23 01 00 00 7b\s+\{nf\} orq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 8c 80 23 01 00 00 7b\s+\{nf\} orq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c 08 da\s+\{nf\} or %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 08 da\s+\{nf\} or %bl,%dl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 08 9c 80 23 01 00 00\s+\{nf\} or %bl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 08 9c 80 23 01 00 00\s+\{nf\} or %bl,0x123\(%r8,%rax,4\),%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 09 d0\s+\{nf\} or %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c 09 d0\s+\{nf\} or %dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c 09 94 80 23 01 00 00\s+\{nf\} or %dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c 09 94 80 23 01 00 00\s+\{nf\} or %dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 09 ca\s+\{nf\} or %ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 09 ca\s+\{nf\} or %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c 09 8c 80 23 01 00 00\s+\{nf\} or %ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 09 8c 80 23 01 00 00\s+\{nf\} or %ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c 09 cf\s+\{nf\} or %r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c 09 cf\s+\{nf\} or %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c 09 8c 80 23 01 00 00\s+\{nf\} or %r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 09 8c 80 23 01 00 00\s+\{nf\} or %r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 0a 9c 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 0a 9c 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%bl,%dl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 0b 94 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 0b 94 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%dx,%ax
+\s*[a-f0-9]+:\s*62 d4 7c 0c 0b 8c 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 0b 8c 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%ecx,%edx
+\s*[a-f0-9]+:\s*62 54 fc 0c 0b 8c 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 54 84 14 0b 8c 80 23 01 00 00\s+\{nf\} or 0x123\(%r8,%rax,4\),%r9,%r31
+\s*[a-f0-9]+:\s*62 f4 7d 0c 88 c2\s+\{nf\} popcnt %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 88 d1\s+\{nf\} popcnt %ecx,%edx
+\s*[a-f0-9]+:\s*62 44 fc 0c 88 f9\s+\{nf\} popcnt %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7d 0c 88 94 80 23 01 00 00\s+\{nf\} popcnt 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 88 8c 80 23 01 00 00\s+\{nf\} popcnt 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 54 fc 0c 88 8c 80 23 01 00 00\s+\{nf\} popcnt 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 c3\s+\{nf\} rol %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 c3\s+\{nf\} rol %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 c2\s+\{nf\} rol %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 c2\s+\{nf\} rol %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 c1\s+\{nf\} rol %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 c1\s+\{nf\} rol %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 c1\s+\{nf\} rol %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 c1\s+\{nf\} rol %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 84 80 23 01 00 00\s+\{nf\} rolb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 84 80 23 01 00 00\s+\{nf\} rolb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 84 80 23 01 00 00\s+\{nf\} rolw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 84 80 23 01 00 00\s+\{nf\} rolw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 84 80 23 01 00 00\s+\{nf\} roll 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 84 80 23 01 00 00\s+\{nf\} roll 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 84 80 23 01 00 00\s+\{nf\} rolq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 84 80 23 01 00 00\s+\{nf\} rolq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 c3 7b\s+\{nf\} rol \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 c3 7b\s+\{nf\} rol \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 c2 7b\s+\{nf\} rol \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 c2 7b\s+\{nf\} rol \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 c1 7b\s+\{nf\} rol \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 c1 7b\s+\{nf\} rol \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 c1 7b\s+\{nf\} rol \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 c1 7b\s+\{nf\} rol \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 84 80 23 01 00 00 7b\s+\{nf\} rolb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 84 80 23 01 00 00 7b\s+\{nf\} rolb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 84 80 23 01 00 00 7b\s+\{nf\} rolw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 84 80 23 01 00 00 7b\s+\{nf\} rolw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 84 80 23 01 00 00 7b\s+\{nf\} roll \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 84 80 23 01 00 00 7b\s+\{nf\} roll \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 84 80 23 01 00 00 7b\s+\{nf\} rolq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 84 80 23 01 00 00 7b\s+\{nf\} rolq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 c3\s+\{nf\} rol %cl,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 c3\s+\{nf\} rol %cl,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 c2\s+\{nf\} rol %cl,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 c2\s+\{nf\} rol %cl,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 c1\s+\{nf\} rol %cl,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 c1\s+\{nf\} rol %cl,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 c1\s+\{nf\} rol %cl,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 c1\s+\{nf\} rol %cl,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 84 80 23 01 00 00\s+\{nf\} rolb %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 84 80 23 01 00 00\s+\{nf\} rolb %cl,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 84 80 23 01 00 00\s+\{nf\} rolw %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 84 80 23 01 00 00\s+\{nf\} rolw %cl,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 84 80 23 01 00 00\s+\{nf\} roll %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 84 80 23 01 00 00\s+\{nf\} roll %cl,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 84 80 23 01 00 00\s+\{nf\} rolq %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 84 80 23 01 00 00\s+\{nf\} rolq %cl,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 cb\s+\{nf\} ror %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 cb\s+\{nf\} ror %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 ca\s+\{nf\} ror %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 ca\s+\{nf\} ror %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 c9\s+\{nf\} ror %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 c9\s+\{nf\} ror %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 c9\s+\{nf\} ror %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 c9\s+\{nf\} ror %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 8c 80 23 01 00 00\s+\{nf\} rorb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 8c 80 23 01 00 00\s+\{nf\} rorb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 8c 80 23 01 00 00\s+\{nf\} rorw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 8c 80 23 01 00 00\s+\{nf\} rorw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 8c 80 23 01 00 00\s+\{nf\} rorl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 8c 80 23 01 00 00\s+\{nf\} rorl 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 8c 80 23 01 00 00\s+\{nf\} rorq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 8c 80 23 01 00 00\s+\{nf\} rorq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 cb 7b\s+\{nf\} ror \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 cb 7b\s+\{nf\} ror \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 ca 7b\s+\{nf\} ror \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 ca 7b\s+\{nf\} ror \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 c9 7b\s+\{nf\} ror \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 c9 7b\s+\{nf\} ror \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 c9 7b\s+\{nf\} ror \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 c9 7b\s+\{nf\} ror \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 8c 80 23 01 00 00 7b\s+\{nf\} rorb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 8c 80 23 01 00 00 7b\s+\{nf\} rorb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 8c 80 23 01 00 00 7b\s+\{nf\} rorw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 8c 80 23 01 00 00 7b\s+\{nf\} rorw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 8c 80 23 01 00 00 7b\s+\{nf\} rorl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 8c 80 23 01 00 00 7b\s+\{nf\} rorl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 8c 80 23 01 00 00 7b\s+\{nf\} rorq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 8c 80 23 01 00 00 7b\s+\{nf\} rorq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 cb\s+\{nf\} ror %cl,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 cb\s+\{nf\} ror %cl,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 ca\s+\{nf\} ror %cl,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 ca\s+\{nf\} ror %cl,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 c9\s+\{nf\} ror %cl,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 c9\s+\{nf\} ror %cl,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 c9\s+\{nf\} ror %cl,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 c9\s+\{nf\} ror %cl,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 8c 80 23 01 00 00\s+\{nf\} rorb %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 8c 80 23 01 00 00\s+\{nf\} rorb %cl,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 8c 80 23 01 00 00\s+\{nf\} rorw %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 8c 80 23 01 00 00\s+\{nf\} rorw %cl,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 8c 80 23 01 00 00\s+\{nf\} rorl %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 8c 80 23 01 00 00\s+\{nf\} rorl %cl,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 8c 80 23 01 00 00\s+\{nf\} rorq %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 8c 80 23 01 00 00\s+\{nf\} rorq %cl,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 fb\s+\{nf\} sar %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 fb\s+\{nf\} sar %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 fa\s+\{nf\} sar %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 fa\s+\{nf\} sar %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 f9\s+\{nf\} sar %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 f9\s+\{nf\} sar %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 f9\s+\{nf\} sar %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 f9\s+\{nf\} sar %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 bc 80 23 01 00 00\s+\{nf\} sarb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 bc 80 23 01 00 00\s+\{nf\} sarb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 bc 80 23 01 00 00\s+\{nf\} sarw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 bc 80 23 01 00 00\s+\{nf\} sarw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 bc 80 23 01 00 00\s+\{nf\} sarl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 bc 80 23 01 00 00\s+\{nf\} sarl 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 bc 80 23 01 00 00\s+\{nf\} sarq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 bc 80 23 01 00 00\s+\{nf\} sarq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 fb 7b\s+\{nf\} sar \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 fb 7b\s+\{nf\} sar \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 fa 7b\s+\{nf\} sar \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 fa 7b\s+\{nf\} sar \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 f9 7b\s+\{nf\} sar \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 f9 7b\s+\{nf\} sar \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 f9 7b\s+\{nf\} sar \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 f9 7b\s+\{nf\} sar \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 bc 80 23 01 00 00 7b\s+\{nf\} sarb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 bc 80 23 01 00 00 7b\s+\{nf\} sarb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 bc 80 23 01 00 00 7b\s+\{nf\} sarw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 bc 80 23 01 00 00 7b\s+\{nf\} sarw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 bc 80 23 01 00 00 7b\s+\{nf\} sarl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 bc 80 23 01 00 00 7b\s+\{nf\} sarl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 bc 80 23 01 00 00 7b\s+\{nf\} sarq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 bc 80 23 01 00 00 7b\s+\{nf\} sarq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 fb\s+\{nf\} sar %cl,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 fb\s+\{nf\} sar %cl,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 fa\s+\{nf\} sar %cl,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 fa\s+\{nf\} sar %cl,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 f9\s+\{nf\} sar %cl,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 f9\s+\{nf\} sar %cl,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 f9\s+\{nf\} sar %cl,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 f9\s+\{nf\} sar %cl,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 bc 80 23 01 00 00\s+\{nf\} sarb %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 bc 80 23 01 00 00\s+\{nf\} sarb %cl,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 bc 80 23 01 00 00\s+\{nf\} sarw %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 bc 80 23 01 00 00\s+\{nf\} sarw %cl,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 bc 80 23 01 00 00\s+\{nf\} sarl %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 bc 80 23 01 00 00\s+\{nf\} sarl %cl,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 bc 80 23 01 00 00\s+\{nf\} sarq %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 bc 80 23 01 00 00\s+\{nf\} sarq %cl,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 e3\s+\{nf\} shl %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 e3\s+\{nf\} shl %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 e2\s+\{nf\} shl %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 e2\s+\{nf\} shl %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 e1\s+\{nf\} shl %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 e1\s+\{nf\} shl %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 e1\s+\{nf\} shl %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 e1\s+\{nf\} shl %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 a4 80 23 01 00 00\s+\{nf\} shlb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 a4 80 23 01 00 00\s+\{nf\} shlb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 a4 80 23 01 00 00\s+\{nf\} shlw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 a4 80 23 01 00 00\s+\{nf\} shlw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 a4 80 23 01 00 00\s+\{nf\} shll 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 a4 80 23 01 00 00\s+\{nf\} shll 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 a4 80 23 01 00 00\s+\{nf\} shlq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 a4 80 23 01 00 00\s+\{nf\} shlq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 e3 7b\s+\{nf\} shl \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 e3 7b\s+\{nf\} shl \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 e2 7b\s+\{nf\} shl \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 e2 7b\s+\{nf\} shl \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 e1 7b\s+\{nf\} shl \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 e1 7b\s+\{nf\} shl \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 e1 7b\s+\{nf\} shl \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 e1 7b\s+\{nf\} shl \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 a4 80 23 01 00 00 7b\s+\{nf\} shlb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 a4 80 23 01 00 00 7b\s+\{nf\} shlb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 a4 80 23 01 00 00 7b\s+\{nf\} shlw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 a4 80 23 01 00 00 7b\s+\{nf\} shlw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 a4 80 23 01 00 00 7b\s+\{nf\} shll \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 a4 80 23 01 00 00 7b\s+\{nf\} shll \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 a4 80 23 01 00 00 7b\s+\{nf\} shlq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 a4 80 23 01 00 00 7b\s+\{nf\} shlq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 e3\s+\{nf\} shl %cl,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 e3\s+\{nf\} shl %cl,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 e2\s+\{nf\} shl %cl,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 e2\s+\{nf\} shl %cl,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 e1\s+\{nf\} shl %cl,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 e1\s+\{nf\} shl %cl,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 e1\s+\{nf\} shl %cl,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 e1\s+\{nf\} shl %cl,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 a4 80 23 01 00 00\s+\{nf\} shlb %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 a4 80 23 01 00 00\s+\{nf\} shlb %cl,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 a4 80 23 01 00 00\s+\{nf\} shlw %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 a4 80 23 01 00 00\s+\{nf\} shlw %cl,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 a4 80 23 01 00 00\s+\{nf\} shll %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 a4 80 23 01 00 00\s+\{nf\} shll %cl,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 a4 80 23 01 00 00\s+\{nf\} shlq %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 a4 80 23 01 00 00\s+\{nf\} shlq %cl,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7d 0c 24 d0 7b\s+\{nf\} shld \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c 24 d0 7b\s+\{nf\} shld \$0x7b,%dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c 24 94 80 23 01 00 00 7b\s+\{nf\} shld \$0x7b,%dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c 24 94 80 23 01 00 00 7b\s+\{nf\} shld \$0x7b,%dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 24 ca 7b\s+\{nf\} shld \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 24 ca 7b\s+\{nf\} shld \$0x7b,%ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c 24 8c 80 23 01 00 00 7b\s+\{nf\} shld \$0x7b,%ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 24 8c 80 23 01 00 00 7b\s+\{nf\} shld \$0x7b,%ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c 24 cf 7b\s+\{nf\} shld \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c 24 cf 7b\s+\{nf\} shld \$0x7b,%r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c 24 8c 80 23 01 00 00 7b\s+\{nf\} shld \$0x7b,%r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 24 8c 80 23 01 00 00 7b\s+\{nf\} shld \$0x7b,%r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 f4 7d 0c a5 d0\s+\{nf\} shld %cl,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c a5 d0\s+\{nf\} shld %cl,%dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c a5 94 80 23 01 00 00\s+\{nf\} shld %cl,%dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c a5 94 80 23 01 00 00\s+\{nf\} shld %cl,%dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c a5 ca\s+\{nf\} shld %cl,%ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c a5 ca\s+\{nf\} shld %cl,%ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c a5 8c 80 23 01 00 00\s+\{nf\} shld %cl,%ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c a5 8c 80 23 01 00 00\s+\{nf\} shld %cl,%ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c a5 cf\s+\{nf\} shld %cl,%r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c a5 cf\s+\{nf\} shld %cl,%r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c a5 8c 80 23 01 00 00\s+\{nf\} shld %cl,%r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 a5 8c 80 23 01 00 00\s+\{nf\} shld %cl,%r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 f4 7c 0c d0 eb\s+\{nf\} shr %bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d0 eb\s+\{nf\} shr %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d1 ea\s+\{nf\} shr %dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d1 ea\s+\{nf\} shr %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d1 e9\s+\{nf\} shr %ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d1 e9\s+\{nf\} shr %ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 e9\s+\{nf\} shr %r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d1 e9\s+\{nf\} shr %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d0 ac 80 23 01 00 00\s+\{nf\} shrb 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d0 ac 80 23 01 00 00\s+\{nf\} shrb 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d1 ac 80 23 01 00 00\s+\{nf\} shrw 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d1 ac 80 23 01 00 00\s+\{nf\} shrw 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d1 ac 80 23 01 00 00\s+\{nf\} shrl 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d1 ac 80 23 01 00 00\s+\{nf\} shrl 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d1 ac 80 23 01 00 00\s+\{nf\} shrq 0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d1 ac 80 23 01 00 00\s+\{nf\} shrq 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c c0 eb 7b\s+\{nf\} shr \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c c0 eb 7b\s+\{nf\} shr \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c c1 ea 7b\s+\{nf\} shr \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c c1 ea 7b\s+\{nf\} shr \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c c1 e9 7b\s+\{nf\} shr \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c c1 e9 7b\s+\{nf\} shr \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 e9 7b\s+\{nf\} shr \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 c1 e9 7b\s+\{nf\} shr \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c c0 ac 80 23 01 00 00 7b\s+\{nf\} shrb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c c0 ac 80 23 01 00 00 7b\s+\{nf\} shrb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c c1 ac 80 23 01 00 00 7b\s+\{nf\} shrw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c c1 ac 80 23 01 00 00 7b\s+\{nf\} shrw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c c1 ac 80 23 01 00 00 7b\s+\{nf\} shrl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c c1 ac 80 23 01 00 00 7b\s+\{nf\} shrl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c c1 ac 80 23 01 00 00 7b\s+\{nf\} shrq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c c1 ac 80 23 01 00 00 7b\s+\{nf\} shrq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c d2 eb\s+\{nf\} shr %cl,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c d2 eb\s+\{nf\} shr %cl,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c d3 ea\s+\{nf\} shr %cl,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c d3 ea\s+\{nf\} shr %cl,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c d3 e9\s+\{nf\} shr %cl,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c d3 e9\s+\{nf\} shr %cl,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 e9\s+\{nf\} shr %cl,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 d3 e9\s+\{nf\} shr %cl,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c d2 ac 80 23 01 00 00\s+\{nf\} shrb %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c d2 ac 80 23 01 00 00\s+\{nf\} shrb %cl,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c d3 ac 80 23 01 00 00\s+\{nf\} shrw %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c d3 ac 80 23 01 00 00\s+\{nf\} shrw %cl,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c d3 ac 80 23 01 00 00\s+\{nf\} shrl %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c d3 ac 80 23 01 00 00\s+\{nf\} shrl %cl,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c d3 ac 80 23 01 00 00\s+\{nf\} shrq %cl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c d3 ac 80 23 01 00 00\s+\{nf\} shrq %cl,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7d 0c 2c d0 7b\s+\{nf\} shrd \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c 2c d0 7b\s+\{nf\} shrd \$0x7b,%dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c 2c 94 80 23 01 00 00 7b\s+\{nf\} shrd \$0x7b,%dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c 2c 94 80 23 01 00 00 7b\s+\{nf\} shrd \$0x7b,%dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 2c ca 7b\s+\{nf\} shrd \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 2c ca 7b\s+\{nf\} shrd \$0x7b,%ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd \$0x7b,%ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd \$0x7b,%ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c 2c cf 7b\s+\{nf\} shrd \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c 2c cf 7b\s+\{nf\} shrd \$0x7b,%r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd \$0x7b,%r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 2c 8c 80 23 01 00 00 7b\s+\{nf\} shrd \$0x7b,%r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 f4 7d 0c ad d0\s+\{nf\} shrd %cl,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c ad d0\s+\{nf\} shrd %cl,%dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c ad 94 80 23 01 00 00\s+\{nf\} shrd %cl,%dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c ad 94 80 23 01 00 00\s+\{nf\} shrd %cl,%dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c ad ca\s+\{nf\} shrd %cl,%ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c ad ca\s+\{nf\} shrd %cl,%ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c ad 8c 80 23 01 00 00\s+\{nf\} shrd %cl,%ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c ad 8c 80 23 01 00 00\s+\{nf\} shrd %cl,%ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c ad cf\s+\{nf\} shrd %cl,%r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c ad cf\s+\{nf\} shrd %cl,%r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c ad 8c 80 23 01 00 00\s+\{nf\} shrd %cl,%r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 ad 8c 80 23 01 00 00\s+\{nf\} shrd %cl,%r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 eb 7b\s+\{nf\} sub \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 eb 7b\s+\{nf\} sub \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 ea 7b\s+\{nf\} sub \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 ea 7b\s+\{nf\} sub \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 e9 7b\s+\{nf\} sub \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 e9 7b\s+\{nf\} sub \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 e9 7b\s+\{nf\} sub \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 83 e9 7b\s+\{nf\} sub \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 ac 80 23 01 00 00 7b\s+\{nf\} subb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 ac 80 23 01 00 00 7b\s+\{nf\} subb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 ac 80 23 01 00 00 7b\s+\{nf\} subw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 ac 80 23 01 00 00 7b\s+\{nf\} subw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 ac 80 23 01 00 00 7b\s+\{nf\} subl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 ac 80 23 01 00 00 7b\s+\{nf\} subl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 ac 80 23 01 00 00 7b\s+\{nf\} subq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 ac 80 23 01 00 00 7b\s+\{nf\} subq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c 28 da\s+\{nf\} sub %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 28 da\s+\{nf\} sub %bl,%dl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 28 9c 80 23 01 00 00\s+\{nf\} sub %bl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 28 9c 80 23 01 00 00\s+\{nf\} sub %bl,0x123\(%r8,%rax,4\),%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 29 d0\s+\{nf\} sub %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c 29 d0\s+\{nf\} sub %dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c 29 94 80 23 01 00 00\s+\{nf\} sub %dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c 29 94 80 23 01 00 00\s+\{nf\} sub %dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 29 ca\s+\{nf\} sub %ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 29 ca\s+\{nf\} sub %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c 29 8c 80 23 01 00 00\s+\{nf\} sub %ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 29 8c 80 23 01 00 00\s+\{nf\} sub %ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c 29 cf\s+\{nf\} sub %r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c 29 cf\s+\{nf\} sub %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c 29 8c 80 23 01 00 00\s+\{nf\} sub %r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 29 8c 80 23 01 00 00\s+\{nf\} sub %r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 2a 9c 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 2a 9c 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%bl,%dl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 2b 94 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 2b 94 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%dx,%ax
+\s*[a-f0-9]+:\s*62 d4 7c 0c 2b 8c 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 2b 8c 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%ecx,%edx
+\s*[a-f0-9]+:\s*62 54 fc 0c 2b 8c 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 54 84 14 2b 8c 80 23 01 00 00\s+\{nf\} sub 0x123\(%r8,%rax,4\),%r9,%r31
+\s*[a-f0-9]+:\s*62 f4 7d 0c f4 c2\s+\{nf\} tzcnt %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c f4 d1\s+\{nf\} tzcnt %ecx,%edx
+\s*[a-f0-9]+:\s*62 44 fc 0c f4 f9\s+\{nf\} tzcnt %r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7d 0c f4 94 80 23 01 00 00\s+\{nf\} tzcnt 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c f4 8c 80 23 01 00 00\s+\{nf\} tzcnt 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 54 fc 0c f4 8c 80 23 01 00 00\s+\{nf\} tzcnt 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c 80 f3 7b\s+\{nf\} xor \$0x7b,%bl
+\s*[a-f0-9]+:\s*62 f4 6c 1c 80 f3 7b\s+\{nf\} xor \$0x7b,%bl,%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 83 f2 7b\s+\{nf\} xor \$0x7b,%dx
+\s*[a-f0-9]+:\s*62 f4 7d 1c 83 f2 7b\s+\{nf\} xor \$0x7b,%dx,%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 83 f1 7b\s+\{nf\} xor \$0x7b,%ecx
+\s*[a-f0-9]+:\s*62 f4 6c 1c 83 f1 7b\s+\{nf\} xor \$0x7b,%ecx,%edx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 f1 7b\s+\{nf\} xor \$0x7b,%r9
+\s*[a-f0-9]+:\s*62 d4 84 14 83 f1 7b\s+\{nf\} xor \$0x7b,%r9,%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 80 b4 80 23 01 00 00 7b\s+\{nf\} xorb \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 64 1c 80 b4 80 23 01 00 00 7b\s+\{nf\} xorb \$0x7b,0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 83 b4 80 23 01 00 00 7b\s+\{nf\} xorw \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6d 1c 83 b4 80 23 01 00 00 7b\s+\{nf\} xorw \$0x7b,0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7c 0c 83 b4 80 23 01 00 00 7b\s+\{nf\} xorl \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 74 1c 83 b4 80 23 01 00 00 7b\s+\{nf\} xorl \$0x7b,0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 fc 0c 83 b4 80 23 01 00 00 7b\s+\{nf\} xorq \$0x7b,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 b4 1c 83 b4 80 23 01 00 00 7b\s+\{nf\} xorq \$0x7b,0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 f4 7c 0c 30 da\s+\{nf\} xor %bl,%dl
+\s*[a-f0-9]+:\s*62 f4 3c 1c 30 da\s+\{nf\} xor %bl,%dl,%r8b
+\s*[a-f0-9]+:\s*62 d4 7c 0c 30 9c 80 23 01 00 00\s+\{nf\} xor %bl,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 30 9c 80 23 01 00 00\s+\{nf\} xor %bl,0x123\(%r8,%rax,4\),%dl
+\s*[a-f0-9]+:\s*62 f4 7d 0c 31 d0\s+\{nf\} xor %dx,%ax
+\s*[a-f0-9]+:\s*62 f4 35 1c 31 d0\s+\{nf\} xor %dx,%ax,%r9w
+\s*[a-f0-9]+:\s*62 d4 7d 0c 31 94 80 23 01 00 00\s+\{nf\} xor %dx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 7d 1c 31 94 80 23 01 00 00\s+\{nf\} xor %dx,0x123\(%r8,%rax,4\),%ax
+\s*[a-f0-9]+:\s*62 f4 7c 0c 31 ca\s+\{nf\} xor %ecx,%edx
+\s*[a-f0-9]+:\s*62 f4 2c 1c 31 ca\s+\{nf\} xor %ecx,%edx,%r10d
+\s*[a-f0-9]+:\s*62 d4 7c 0c 31 8c 80 23 01 00 00\s+\{nf\} xor %ecx,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 d4 6c 1c 31 8c 80 23 01 00 00\s+\{nf\} xor %ecx,0x123\(%r8,%rax,4\),%edx
+\s*[a-f0-9]+:\s*62 5c fc 0c 31 cf\s+\{nf\} xor %r9,%r31
+\s*[a-f0-9]+:\s*62 5c a4 1c 31 cf\s+\{nf\} xor %r9,%r31,%r11
+\s*[a-f0-9]+:\s*62 54 fc 0c 31 8c 80 23 01 00 00\s+\{nf\} xor %r9,0x123\(%r8,%rax,4\)
+\s*[a-f0-9]+:\s*62 54 84 14 31 8c 80 23 01 00 00\s+\{nf\} xor %r9,0x123\(%r8,%rax,4\),%r31
+\s*[a-f0-9]+:\s*62 d4 7c 0c 32 9c 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%bl
+\s*[a-f0-9]+:\s*62 d4 6c 1c 32 9c 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%bl,%dl
+\s*[a-f0-9]+:\s*62 d4 7d 0c 33 94 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%dx
+\s*[a-f0-9]+:\s*62 d4 7d 1c 33 94 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%dx,%ax
+\s*[a-f0-9]+:\s*62 d4 7c 0c 33 8c 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%ecx
+\s*[a-f0-9]+:\s*62 d4 6c 1c 33 8c 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%ecx,%edx
+\s*[a-f0-9]+:\s*62 54 fc 0c 33 8c 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%r9
+\s*[a-f0-9]+:\s*62 54 84 14 33 8c 80 23 01 00 00\s+\{nf\} xor 0x123\(%r8,%rax,4\),%r9,%r31
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-nf.s b/gas/testsuite/gas/i386/x86-64-apx-nf.s
new file mode 100644
index 00000000000..1016dcfdd27
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-nf.s
@@ -0,0 +1,1256 @@
+# Check 64bit APX_F instructions
+
+        .text
+_start:
+	{nf}	add	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	addb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	addb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	addw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	addw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	addl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	addl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	addq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	addq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%bl, %dl, %r8b	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%bl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%bl, 291(%r8, %rax, 4), %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	%r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	291(%r8, %rax, 4), %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	andb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	andw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	andl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	andq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%bl, %dl, %r8b	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%bl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%bl, 291(%r8, %rax, 4), %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	%r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	291(%r8, %rax, 4), %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	andn	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andn	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andn	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andn	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	decb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	decb	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	decw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	decw	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	decl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	decl	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	decq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	decq	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	div	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	divb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	divw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	divl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	divq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idivb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idivw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idivl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idivq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imul	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imul	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imulb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imulw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imull	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imulq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	incb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	incb	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	incw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	incw	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	incl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	incl	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	incq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	incq	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	lzcnt	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mulb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mulw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mull	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mulq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	negb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	negb	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	negw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	negw	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	negl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	negl	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	negq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	negq	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	orb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	orb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	orw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	orw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	orl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	orl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	orq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	orq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%bl, %dl, %r8b	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%bl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%bl, 291(%r8, %rax, 4), %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	%r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	291(%r8, %rax, 4), %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	popcnt	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$1, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$1, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	$1, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$1, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	$1, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$1, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	$1, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$1, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolb	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolb	$1, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolw	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolw	$1, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	roll	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	roll	$1, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolq	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolq	$1, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	roll	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	roll	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	%cl, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	%cl, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	%cl, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	%cl, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	%cl, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	%cl, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	%cl, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	%cl, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolb	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolb	%cl, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolw	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolw	%cl, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	roll	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	roll	%cl, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rolq	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rolq	%cl, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$1, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$1, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$1, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$1, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$1, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$1, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$1, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$1, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorb	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorb	$1, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorw	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorw	$1, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorl	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorl	$1, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorq	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorq	$1, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	%cl, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	%cl, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	%cl, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	%cl, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	%cl, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	%cl, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	%cl, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	%cl, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorb	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorb	%cl, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorw	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorw	%cl, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorl	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorl	%cl, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rorq	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rorq	%cl, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$1, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$1, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$1, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$1, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$1, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$1, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$1, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$1, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarb	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarb	$1, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarw	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarw	$1, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarl	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarl	$1, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarq	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarq	$1, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	%cl, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	%cl, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	%cl, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	%cl, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	%cl, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	%cl, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	%cl, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	%cl, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarb	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarb	%cl, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarw	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarw	%cl, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarl	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarl	%cl, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sarq	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sarq	%cl, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$1, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$1, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$1, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$1, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$1, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$1, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$1, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$1, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlb	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlb	$1, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlw	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlw	$1, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shll	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shll	$1, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlq	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlq	$1, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shll	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shll	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	%cl, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	%cl, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	%cl, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	%cl, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	%cl, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	%cl, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	%cl, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	%cl, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlb	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlb	%cl, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlw	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlw	%cl, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shll	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shll	%cl, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shlq	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shlq	%cl, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	$123, %dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	$123, %dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	$123, %dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	$123, %ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	$123, %ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	$123, %ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	$123, %r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	$123, %r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	$123, %r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	%cl, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	%cl, %dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	%cl, %dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	%cl, %dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	%cl, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	%cl, %ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	%cl, %ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	%cl, %ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	%cl, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	%cl, %r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	%cl, %r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	%cl, %r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$1, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$1, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$1, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$1, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$1, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$1, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$1, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$1, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrb	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrb	$1, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrw	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrw	$1, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrl	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrl	$1, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrq	$1, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrq	$1, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	%cl, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	%cl, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	%cl, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	%cl, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	%cl, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	%cl, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	%cl, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	%cl, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrb	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrb	%cl, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrw	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrw	%cl, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrl	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrl	%cl, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrq	%cl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrq	%cl, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	$123, %dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	$123, %dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	$123, %dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	$123, %ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	$123, %ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	$123, %ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	$123, %r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	$123, %r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	$123, %r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	%cl, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	%cl, %dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	%cl, %dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	%cl, %dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	%cl, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	%cl, %ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	%cl, %ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	%cl, %ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	%cl, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	%cl, %r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	%cl, %r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	%cl, %r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	subb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	subb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	subw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	subw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	subl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	subl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	subq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	subq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%bl, %dl, %r8b	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%bl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%bl, 291(%r8, %rax, 4), %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	%r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	291(%r8, %rax, 4), %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	tzcnt	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xorb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xorb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xorw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xorw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xorl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xorl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xorq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xorq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%bl, %dl, %r8b	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%bl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%bl, 291(%r8, %rax, 4), %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	%r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	291(%r8, %rax, 4), %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+
+.intel_syntax noprefix
+	{nf}	add	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r8b, dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	dl, BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r9w, ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	ax, WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	edx, DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r31, QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	dl, bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	ax, dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	edx, ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	add	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	add	r31, r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r8b, dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	dl, BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r9w, ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	ax, WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	edx, DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r31, QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	dl, bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	ax, dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	edx, ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	and	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	and	r31, r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	andn	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andn	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andn	edx, ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	andn	r31, r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	edx, DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bextr	r31, QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsi	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsmsk	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	blsr	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	edx, DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	bzhi	r31, QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	dec	QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	dec	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	div	bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	div	QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	idiv	QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	ax, dx, 123	 #APX_F OPC_EVEX_NF
+	{nf}	imul	edx, ecx, 123	 #APX_F OPC_EVEX_NF
+	{nf}	imul	r31, r9, 123	 #APX_F OPC_EVEX_NF
+	{nf}	imul	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF
+	{nf}	imul	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF
+	{nf}	imul	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF
+	{nf}	imul	bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	r9w, ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imul	ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imul	r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imul	BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	ax, dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imul	DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	edx, ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	imul	QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	imul	r31, r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	inc	QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	inc	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	lzcnt	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	lzcnt	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	mul	QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	neg	QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	neg	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r8b, dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	dl, BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r9w, ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	ax, WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	edx, DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r31, QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	dl, bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	ax, dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	edx, ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	or	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	or	r31, r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	popcnt	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	popcnt	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	dl, bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	ax, dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	edx, ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	r31, r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	bl, BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	dx, WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	ecx, DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	r9, QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	dl, bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	bl, BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	dx, WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	ecx, DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	rol	QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	rol	r9, QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	dl, bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	ax, dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	edx, ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	r31, r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	bl, BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	dx, WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	ecx, DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	r9, QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	dl, bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	bl, BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	dx, WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	ecx, DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	ror	QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	ror	r9, QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	dl, bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	ax, dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	edx, ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	r31, r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	bl, BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	dx, WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	ecx, DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	r9, QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	dl, bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	bl, BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	dx, WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	ecx, DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sar	QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sar	r9, QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	dl, bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	ax, dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	edx, ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	r31, r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	bl, BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	dx, WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	ecx, DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	r9, QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	dl, bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	bl, BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	dx, WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	ecx, DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shl	QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shl	r9, QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r9w, ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	WORD PTR [r8+rax*4+291], dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	ax, WORD PTR [r8+rax*4+291], dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r10d, edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	DWORD PTR [r8+rax*4+291], ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	edx, DWORD PTR [r8+rax*4+291], ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r11, r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	QWORD PTR [r8+rax*4+291], r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r31, QWORD PTR [r8+rax*4+291], r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r9w, ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	WORD PTR [r8+rax*4+291], dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	ax, WORD PTR [r8+rax*4+291], dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r10d, edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	DWORD PTR [r8+rax*4+291], ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	edx, DWORD PTR [r8+rax*4+291], ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r11, r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shld	QWORD PTR [r8+rax*4+291], r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shld	r31, QWORD PTR [r8+rax*4+291], r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	dl, bl, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	ax, dx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	edx, ecx, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	r31, r9, 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	bl, BYTE PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	dx, WORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	ecx, DWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	r9, QWORD PTR [r8+rax*4+291], 1	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	dl, bl, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	bl, BYTE PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	dx, WORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	ecx, DWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shr	QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shr	r9, QWORD PTR [r8+rax*4+291], cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r9w, ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	WORD PTR [r8+rax*4+291], dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	ax, WORD PTR [r8+rax*4+291], dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r10d, edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	DWORD PTR [r8+rax*4+291], ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	edx, DWORD PTR [r8+rax*4+291], ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r11, r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	QWORD PTR [r8+rax*4+291], r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r31, QWORD PTR [r8+rax*4+291], r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r9w, ax, dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	WORD PTR [r8+rax*4+291], dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	ax, WORD PTR [r8+rax*4+291], dx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r10d, edx, ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	DWORD PTR [r8+rax*4+291], ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	edx, DWORD PTR [r8+rax*4+291], ecx, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r11, r31, r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	shrd	QWORD PTR [r8+rax*4+291], r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	shrd	r31, QWORD PTR [r8+rax*4+291], r9, cl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r8b, dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	dl, BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r9w, ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	ax, WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	edx, DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r31, QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	dl, bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	ax, dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	edx, ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	sub	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	sub	r31, r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	tzcnt	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	tzcnt	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	dl, bl, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	ax, dx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	edx, ecx, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r31, r9, 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	bl, BYTE PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	dx, WORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	ecx, DWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r9, QWORD PTR [r8+rax*4+291], 123	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r8b, dl, bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	dl, BYTE PTR [r8+rax*4+291], bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r9w, ax, dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	ax, WORD PTR [r8+rax*4+291], dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r10d, edx, ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	edx, DWORD PTR [r8+rax*4+291], ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r11, r31, r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r31, QWORD PTR [r8+rax*4+291], r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	dl, bl, BYTE PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	ax, dx, WORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	edx, ecx, DWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
+	{nf}	xor	r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
+	{nf}	xor	r31, r9, QWORD PTR [r8+rax*4+291]	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 2d3a0387497..9aaa905393b 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -372,6 +372,8 @@ run_dump_test "x86-64-apx-evex-promoted"
 run_dump_test "x86-64-apx-evex-promoted-intel"
 run_dump_test "x86-64-apx-evex-egpr"
 run_dump_test "x86-64-apx-ndd"
+run_dump_test "x86-64-apx-nf"
+run_dump_test "x86-64-apx-nf-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 7c9b921bf6b..060ba3afb6c 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 */
   {
-    { "andnS",		{ Gdq, VexGdq, Edq }, 0 },
+    { "%XNandnS",		{ Gdq, VexGdq, Edq }, 0 },
   },
 
   /* EVEX_LEN_0F38F3 */
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index f9d313a78e1..109b43334ad 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -52,41 +52,41 @@
   /* REG_EVEX_0F38F3_L_0 */
   {
     { Bad_Opcode },
-    { "blsrS",		{ VexGdq, Edq }, 0 },
-    { "blsmskS",	{ VexGdq, Edq }, 0 },
-    { "blsiS",		{ VexGdq, Edq }, 0 },
+    { "%XNblsrS",		{ VexGdq, Edq }, 0 },
+    { "%XNblsmskS",	{ VexGdq, Edq }, 0 },
+    { "%XNblsiS",		{ VexGdq, Edq }, 0 },
   },
   /* REG_EVEX_MAP4_80 */
   {
-    { "addA",	{ VexGb, Eb, Ib }, 0 },
-    { "orA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNaddA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNorA",	{ VexGb, Eb, Ib }, 0 },
     { "adcA",	{ VexGb, Eb, Ib }, 0 },
     { "sbbA",	{ VexGb, Eb, Ib }, 0 },
-    { "andA",	{ VexGb, Eb, Ib }, 0 },
-    { "subA",	{ VexGb, Eb, Ib }, 0 },
-    { "xorA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNandA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNsubA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNxorA",	{VexGb, Eb, Ib }, 0 },
     { Bad_Opcode },
   },
   /* REG_EVEX_MAP4_81 */
   {
-    { "addQ",	{ VexGv, Ev, Iv }, 0 },
-    { "orQ",	{ VexGv, Ev, Iv }, 0 },
+    { "%XNaddQ",	{ VexGv, Ev, Iv }, 0 },
+    { "%XNorQ",	{ VexGv, Ev, Iv }, 0 },
     { "adcQ",	{ VexGv, Ev, Iv }, 0 },
     { "sbbQ",	{ VexGv, Ev, Iv }, 0 },
-    { "andQ",	{ VexGv, Ev, Iv }, 0 },
-    { "subQ",	{ VexGv, Ev, Iv }, 0 },
-    { "xorQ",	{ VexGv, Ev, Iv }, 0 },
+    { "%XNandQ",	{ VexGv, Ev, Iv }, 0 },
+    { "%XNsubQ",	{ VexGv, Ev, Iv }, 0 },
+    { "%XNxorQ",	{ VexGv, Ev, Iv }, 0 },
     { Bad_Opcode },
   },
   /* REG_EVEX_MAP4_83 */
   {
-    { "addQ",	{ VexGv, Ev, sIb }, 0 },
-    { "orQ",	{ VexGv, Ev, sIb }, 0 },
+    { "%XNaddQ",	{ VexGv, Ev, sIb }, 0 },
+    { "%XNorQ",	{ VexGv, Ev, sIb }, 0 },
     { "adcQ",	{ VexGv, Ev, sIb }, 0 },
     { "sbbQ",	{ VexGv, Ev, sIb }, 0 },
-    { "andQ",	{ VexGv, Ev, sIb }, 0 },
-    { "subQ",	{ VexGv, Ev, sIb }, 0 },
-    { "xorQ",	{ VexGv, Ev, sIb }, 0 },
+    { "%XNandQ",	{ VexGv, Ev, sIb }, 0 },
+    { "%XNsubQ",	{ VexGv, Ev, sIb }, 0 },
+    { "%XNxorQ",	{ VexGv, Ev, sIb }, 0 },
     { Bad_Opcode },
   },
   /* REG_EVEX_MAP4_8F_X86_64_L_0_M_1 */
@@ -95,69 +95,69 @@
   },
   /* REG_EVEX_MAP4_C0 */
   {
-    { "rolA",	{ VexGb, Eb, Ib }, 0 },
-    { "rorA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNrolA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNrorA",	{ VexGb, Eb, Ib }, 0 },
     { "rclA",	{ VexGb, Eb, Ib }, 0 },
     { "rcrA",	{ VexGb, Eb, Ib }, 0 },
-    { "shlA",	{ VexGb, Eb, Ib }, 0 },
-    { "shrA",	{ VexGb, Eb, Ib }, 0 },
-    { "shlA",	{ VexGb, Eb, Ib }, 0 },
-    { "sarA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNshlA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNshrA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNshlA",	{ VexGb, Eb, Ib }, 0 },
+    { "%XNsarA",	{ VexGb, Eb, Ib }, 0 },
   },
   /* REG_EVEX_MAP4_C1 */
   {
-    { "rolQ",	{ VexGv, Ev, Ib }, 0 },
-    { "rorQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XNrolQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XNrorQ",	{ VexGv, Ev, Ib }, 0 },
     { "rclQ",	{ VexGv, Ev, Ib }, 0 },
     { "rcrQ",	{ VexGv, Ev, Ib }, 0 },
-    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
-    { "shrQ",	{ VexGv, Ev, Ib }, 0 },
-    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
-    { "sarQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XNshlQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XNshrQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XNshlQ",	{ VexGv, Ev, Ib }, 0 },
+    { "%XNsarQ",	{ VexGv, Ev, Ib }, 0 },
   },
   /* REG_EVEX_MAP4_D0 */
   {
-    { "rolA",	{ VexGb, Eb, I1 }, 0 },
-    { "rorA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XNrolA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XNrorA",	{ VexGb, Eb, I1 }, 0 },
     { "rclA",	{ VexGb, Eb, I1 }, 0 },
     { "rcrA",	{ VexGb, Eb, I1 }, 0 },
-    { "shlA",	{ VexGb, Eb, I1 }, 0 },
-    { "shrA",	{ VexGb, Eb, I1 }, 0 },
-    { "shlA",	{ VexGb, Eb, I1 }, 0 },
-    { "sarA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XNshlA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XNshrA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XNshlA",	{ VexGb, Eb, I1 }, 0 },
+    { "%XNsarA",	{ VexGb, Eb, I1 }, 0 },
   },
   /* REG_EVEX_MAP4_D1 */
   {
-    { "rolQ",	{ VexGv, Ev, I1 }, 0 },
-    { "rorQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XNrolQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XNrorQ",	{ VexGv, Ev, I1 }, 0 },
     { "rclQ",	{ VexGv, Ev, I1 }, 0 },
     { "rcrQ",	{ VexGv, Ev, I1 }, 0 },
-    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
-    { "shrQ",	{ VexGv, Ev, I1 }, 0 },
-    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
-    { "sarQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XNshlQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XNshrQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XNshlQ",	{ VexGv, Ev, I1 }, 0 },
+    { "%XNsarQ",	{ VexGv, Ev, I1 }, 0 },
   },
   /* REG_EVEX_MAP4_D2 */
   {
-    { "rolA",	{ VexGb, Eb, CL }, 0 },
-    { "rorA",	{ VexGb, Eb, CL }, 0 },
+    { "%XNrolA",	{ VexGb, Eb, CL }, 0 },
+    { "%XNrorA",	{ VexGb, Eb, CL }, 0 },
     { "rclA",	{ VexGb, Eb, CL }, 0 },
     { "rcrA",	{ VexGb, Eb, CL }, 0 },
-    { "shlA",	{ VexGb, Eb, CL }, 0 },
-    { "shrA",	{ VexGb, Eb, CL }, 0 },
-    { "shlA",	{ VexGb, Eb, CL }, 0 },
-    { "sarA",	{ VexGb, Eb, CL }, 0 },
+    { "%XNshlA",	{ VexGb, Eb, CL }, 0 },
+    { "%XNshrA",	{ VexGb, Eb, CL }, 0 },
+    { "%XNshlA",	{ VexGb, Eb, CL }, 0 },
+    { "%XNsarA",	{ VexGb, Eb, CL }, 0 },
   },
   /* REG_EVEX_MAP4_D3 */
   {
-    { "rolQ",	{ VexGv, Ev, CL }, 0 },
-    { "rorQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XNrolQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XNrorQ",	{ VexGv, Ev, CL }, 0 },
     { "rclQ",	{ VexGv, Ev, CL }, 0 },
     { "rcrQ",	{ VexGv, Ev, CL }, 0 },
-    { "shlQ",	{ VexGv, Ev, CL }, 0 },
-    { "shrQ",	{ VexGv, Ev, CL }, 0 },
-    { "shlQ",	{ VexGv, Ev, CL }, 0 },
-    { "sarQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XNshlQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XNshrQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XNshlQ",	{ VexGv, Ev, CL }, 0 },
+    { "%XNsarQ",	{ VexGv, Ev, CL }, 0 },
   },
   /* REG_EVEX_MAP4_D8_PREFIX_1 */
   {
@@ -170,25 +170,34 @@
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "notA",	{ VexGb, Eb }, 0 },
-    { "negA",	{ VexGb, Eb }, 0 },
+    { "%XNnotA",	{ VexGb, Eb }, 0 },
+    { "%XNnegA",	{ VexGb, Eb }, 0 },
+    { "%XNmulA",   { Eb }, 0 },    /* Don't print the implicit %al register,  */
+    { "%XNimulA",  { Eb }, 0 },    /* to distinguish these opcodes from other */
+    { "%XNdivA",   { Eb }, 0 },    /* mul/imul opcodes.  Do the same for div  */
+    { "%XNidivA",  { Eb }, 0 },    /* and idiv for consistency.               */
+
   },
   /* REG_EVEX_MAP4_F7 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "notQ",	{ VexGv, Ev }, 0 },
-    { "negQ",	{ VexGv, Ev }, 0 },
+    { "%XNnotQ",	{ VexGv, Ev }, 0 },
+    { "%XNnegQ",	{ VexGv, Ev }, 0 },
+    { "%XNmulQ",   { Ev }, 0 },    /* Don't print the implicit %al register,  */
+    { "%XNimulQ",  { Ev }, 0 },    /* to distinguish these opcodes from other */
+    { "%XNdivQ",   { Ev }, 0 },    /* mul/imul opcodes.  Do the same for div  */
+    { "%XNidivQ",  { Ev }, 0 },    /* and idiv for consistency.               */
   },
   /* REG_EVEX_MAP4_FE */
   {
-    { "incA",   { VexGb ,Eb }, 0 },
-    { "decA",   { VexGb ,Eb }, 0 },
+    { "%XNincA",   { VexGb ,Eb }, 0 },
+    { "%XNdecA",   { VexGb ,Eb }, 0 },
   },
   /* REG_EVEX_MAP4_FF */
   {
-    { "incQ",   { VexGv ,Ev }, 0 },
-    { "decQ",   { VexGv ,Ev }, 0 },
+    { "%XNincQ",   { VexGv ,Ev }, 0 },
+    { "%XNdecQ",   { VexGv ,Ev }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 22fa9b2b067..0f196155054 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -875,19 +875,19 @@ static const struct dis386 evex_table[][256] = {
   /* EVEX_MAP4_ */
   {
     /* 00 */
-    { "addB",             { VexGb, Eb, Gb }, 0  },
-    { "addS",             { VexGv, Ev, Gv }, 0 },
-    { "addB",             { VexGb, Gb, EbS }, 0 },
-    { "addS",             { VexGv, Gv, EvS }, 0 },
+    { "%XNaddB",             { VexGb, Eb, Gb }, 0  },
+    { "%XNaddS",             { VexGv, Ev, Gv }, 0 },
+    { "%XNaddB",             { VexGb, Gb, EbS }, 0 },
+    { "%XNaddS",             { VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 08 */
-    { "orB",		{ VexGb, Eb, Gb }, 0 },
-    { "orS",		{ VexGv, Ev, Gv }, 0 },
-    { "orB",		{ VexGb, Gb, EbS }, 0 },
-    { "orS",		{ VexGv, Gv, EvS }, 0 },
+    { "%XNorB",		{ VexGb, Eb, Gb }, 0 },
+    { "%XNorS",		{ VexGv, Ev, Gv }, 0 },
+    { "%XNorB",		{ VexGb, Gb, EbS }, 0 },
+    { "%XNorS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -911,28 +911,28 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 20 */
-    { "andB",		{ VexGb, Eb, Gb }, 0 },
-    { "andS",		{ VexGv, Ev, Gv }, 0 },
-    { "andB",		{ VexGb, Gb, EbS }, 0 },
-    { "andS",		{ VexGv, Gv, EvS }, 0 },
-    { "shldS",		{ VexGv, Ev, Gv, Ib }, 0 },
+    { "%XNandB",	{ VexGb, Eb, Gb }, 0 },
+    { "%XNandS",	{ VexGv, Ev, Gv }, 0 },
+    { "%XNandB",	{ VexGb, Gb, EbS }, 0 },
+    { "%XNandS",	{ VexGv, Gv, EvS }, 0 },
+    { "%XNshldS",	{ VexGv, Ev, Gv, Ib }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 28 */
-    { "subB",		{ VexGb, Eb, Gb }, 0 },
-    { "subS",		{ VexGv, Ev, Gv }, 0 },
-    { "subB",		{ VexGb, Gb, EbS }, 0 },
-    { "subS",		{ VexGv, Gv, EvS }, 0 },
-    { "shrdS",		{ VexGv, Ev, Gv, Ib }, 0 },
+    { "%XNsubB",		{ VexGb, Eb, Gb }, 0 },
+    { "%XNsubS",		{ VexGv, Ev, Gv }, 0 },
+    { "%XNsubB",		{ VexGb, Gb, EbS }, 0 },
+    { "%XNsubS",		{ VexGv, Gv, EvS }, 0 },
+    { "%XNshrdS",		{ VexGv, Ev, Gv, Ib }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 30 */
-    { "xorB",		{ VexGb, Eb, Gb }, 0 },
-    { "xorS",		{ VexGv, Ev, Gv }, 0 },
-    { "xorB",		{ VexGb, Gb, EbS }, 0 },
-    { "xorS",		{ VexGv, Gv, EvS }, 0 },
+    { "%XNxorB",		{ VexGb, Eb, Gb }, 0 },
+    { "%XNxorS",		{ VexGv, Ev, Gv }, 0 },
+    { "%XNxorB",		{ VexGb, Gb, EbS }, 0 },
+    { "%XNxorS",		{ VexGv, Gv, EvS }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -993,9 +993,9 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     /* 68 */
     { Bad_Opcode },
+    { "%XNimulS",            { VexGv, Ev, Iv }, 0 },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "%XNimulS",            { VexGv, Ev, sIb }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1028,7 +1028,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 88 */
-    { Bad_Opcode },
+    { "%XNpopcntS", { Gv, Ev }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1060,7 +1060,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "shldS",		{ VexGv, Ev, Gv, CL }, 0 },
+    { "%XNshldS",		{ VexGv, Ev, Gv, CL }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
     /* A8 */
@@ -1069,9 +1069,9 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "shrdS",		{ VexGv, Ev, Gv, CL }, 0 },
+    { "%XNshrdS",		{ VexGv, Ev, Gv, CL }, 0 },
     { Bad_Opcode },
-    { "imulS",		{ VexGv, Gv, Ev }, 0 },
+    { "%XNimulS",		{ VexGv, Gv, Ev }, 0 },
     /* B0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -1149,8 +1149,8 @@ static const struct dis386 evex_table[][256] = {
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_F1) },
     { PREFIX_TABLE (PREFIX_EVEX_MAP4_F2) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { "%XNtzcntS",	{ Gv, Ev }, 0 },
+    { "%XNlzcntS",	{ Gv, Ev }, 0 },
     { REG_TABLE (REG_EVEX_MAP4_F6) },
     { REG_TABLE (REG_EVEX_MAP4_F7) },
     /* F8 */
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 4671d2e4b0e..b3ede02df06 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -224,6 +224,7 @@ struct instr_info
     bool zeroing;
     bool b;
     bool no_broadcast;
+    bool nf;
   }
   vex;
 
@@ -1851,6 +1852,8 @@ struct dis386 {
    "XV" => print "{vex} " pseudo prefix
    "XE" => print "{evex} " pseudo prefix if no EVEX-specific functionality is
 	   is used by an EVEX-encoded (AVX512VL) instruction.
+   "XN" => print "{nf} " pseudo prefix when EVEX.NF = 1.
+	   a valid encoding.
    "YK" keep unused, to avoid ambiguity with the combined use of Y and K.
    "YX" keep unused, to avoid ambiguity with the combined use of Y and X.
    "LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand, cond
@@ -4119,7 +4122,7 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_VEX_0F38F5_L_0 */
   {
-    { "bzhiS",		{ Gdq, Edq, VexGdq }, 0 },
+    { "%XNbzhiS",	{ Gdq, Edq, VexGdq }, 0 },
     { "pextS",		{ Gdq, VexGdq, Edq }, 0 },
     { Bad_Opcode },
     { "pdepS",		{ Gdq, VexGdq, Edq }, 0 },
@@ -4135,7 +4138,7 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_VEX_0F38F7_L_0 */
   {
-    { "bextrS",		{ Gdq, Edq, VexGdq }, 0 },
+    { "%XNbextrS",	{ Gdq, Edq, VexGdq }, 0 },
     { "sarxS",		{ Gdq, Edq, VexGdq }, 0 },
     { "shlxS",		{ Gdq, Edq, VexGdq }, 0 },
     { "shrxS",		{ Gdq, Edq, VexGdq }, 0 },
@@ -9111,6 +9114,10 @@ use_x86_64_table:
       ins->vex.v = *ins->codep & 0x8;
       ins->vex.mask_register_specifier = *ins->codep & 0x7;
       ins->vex.zeroing = *ins->codep & 0x80;
+      /* Set the NF bit for the EVEX instruction extended from the legacy or
+	 vex instruction, this bit will be cleared when it can be confirmed
+	 that its defaut type is evex.  */
+      ins->vex.nf = *ins->codep & 0x4;
 
       if (ins->address_mode != mode_64bit)
 	{
@@ -9550,6 +9557,11 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
 	  && ins.vex.prefix == DATA_PREFIX_OPCODE)
 	sizeflag ^= DFLAG;
 
+      if(ins.evex_type == evex_default)
+	ins.vex.nf = false;
+      else
+	ins.vex.mask_register_specifier = 0;
+
       if (dp != NULL && putop (&ins, dp->name, sizeflag) == 0)
 	{
 	  if (!get_sib (&ins, sizeflag))
@@ -10553,11 +10565,36 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
 	    *ins->obufp++ = 'r';
 	  break;
 	case 'N':
-	  if ((ins->prefixes & PREFIX_FWAIT) == 0)
-	    *ins->obufp++ = 'n';
+	  if (l == 1 && last[0] == 'X')
+	    {
+	      if (ins->vex.nf == true)
+		{
+		  *ins->obufp++ = '{';
+		  *ins->obufp++ = 'n';
+		  *ins->obufp++ = 'f';
+		  *ins->obufp++ = '}';
+		  *ins->obufp++ = ' ';
+		}
+	      else if (ins->evex_type == evex_from_legacy && !ins->vex.b)
+		{
+		  *ins->obufp++ = '{';
+		  *ins->obufp++ = 'e';
+		  *ins->obufp++ = 'v';
+		  *ins->obufp++ = 'e';
+		  *ins->obufp++ = 'x';
+		  *ins->obufp++ = '}';
+		  *ins->obufp++ = ' ';
+		}
+	      break;
+	    }
 	  else
-	    ins->used_prefixes |= PREFIX_FWAIT;
-	  break;
+	    {
+	      if ((ins->prefixes & PREFIX_FWAIT) == 0)
+		*ins->obufp++ = 'n';
+	      else
+		ins->used_prefixes |= PREFIX_FWAIT;
+	      break;
+	    }
 	case 'O':
 	  USED_REX (REX_W);
 	  if (ins->rex & REX_W)
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index f951c452cc3..a472fba6254 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -472,6 +472,7 @@ static bitfield opcode_modifiers[] =
   BITFIELD (ISA64),
   BITFIELD (No_egpr),
   BITFIELD (Push2Pop2),
+  BITFIELD (NF),
 };
 
 #define CLASS(n) #n, n
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 1663cc74937..05f69d4a584 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -752,6 +752,9 @@ enum
   /* APX Push2Pop2 bit  */
   Push2Pop2,
 
+  /* No CSPAZO flags update indication.  */
+  NF,
+
   /* The last bitfield in i386_opcode_modifier.  */
   Opcode_Modifier_Num
 };
@@ -801,6 +804,7 @@ typedef struct i386_opcode_modifier
   unsigned int isa64:2;
   unsigned int no_egpr:1;
   unsigned int push2pop2:1;
+  unsigned int nf:1;
 } i386_opcode_modifier;
 
 /* Operand classes.  */
@@ -1003,7 +1007,7 @@ typedef struct insn_template
      AMD 3DNow! instructions.
      If this template has no extension opcode (the usual case) use None
      Instructions */
-  signed int extension_opcode:0xA;
+  signed int extension_opcode:0xB;
 #define None (-1)		/* If no extension_opcode is possible.  */
 
 /* Pseudo prefixes.  */
@@ -1017,7 +1021,8 @@ typedef struct insn_template
 #define Prefix_EVEX		7	/* {evex} */
 #define Prefix_REX		8	/* {rex} */
 #define Prefix_REX2		9	/* {rex2} */
-#define Prefix_NoOptimize	0xA	/* {nooptimize} */
+#define Prefix_NF		0xA	/* {nf} */
+#define Prefix_NoOptimize	0xB	/* {nooptimize} */
 
   /* the bits in opcode_modifier are used to generate the final opcode from
      the base_opcode.  These bits also are used to detect alternate forms of
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 583b6676b0e..4e8ef15c28b 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -286,25 +286,41 @@ add, 0x0, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg3
 add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 add, 0x4, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 add, 0x80/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-add, 0x0, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-add, 0x83/0, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-add, 0x80/0, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
+
+add, 0x0, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+add, 0x83/0, APX_F|x64, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+add, 0x80/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+add, 0x0, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+add, 0x83/0, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+add, 0x80/0, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
 
 inc, 0x40, No64, No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32 }
 inc, 0xfe/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-inc, 0xfe/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, {Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
+
+inc, 0xfe/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+inc, 0xfe/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, {Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
 
 sub, 0x28, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sub, 0x83/5, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 sub, 0x2c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 sub, 0x80/5, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-sub, 0x28, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64, }
-sub, 0x83/5, APX_F|x64, Modrm|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-sub, 0x80/5, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+sub, 0x28, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|Optimize|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sub, 0x83/5, APX_F|x64, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+sub, 0x80/5, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+sub, 0x28, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|NF|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64, }
+sub, 0x83/5, APX_F|x64, Modrm|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+sub, 0x80/5, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 dec, 0x48, No64, No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32 }
 dec, 0xfe/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-dec, 0xfe/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+dec, 0xfe/1, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+dec, 0xfe/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 sbb, 0x18, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sbb, 0x83/3, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -330,25 +346,40 @@ and, 0x20, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|
 and, 0x83/4, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 and, 0x24, 0, W|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 and, 0x80/4, 0, W|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-and, 0x20, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-and, 0x83/4, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-and, 0x80/4, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+and, 0x20, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|Optimize|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+and, 0x83/4, APX_F|x64, Modrm|No_bSuf|No_sSuf|Optimize|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+and, 0x80/4, APX_F|x64, W|Modrm|No_sSuf|Optimize|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+and, 0x20, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|NF|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+and, 0x83/4, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+and, 0x80/4, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|NF|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 or, 0x8, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 or, 0x83/1, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 or, 0xc, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 or, 0x80/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-or, 0x8, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-or, 0x83/1, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-or, 0x80/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+or, 0x8, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|Optimize|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+or, 0x83/1, APX_F|x64, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+or, 0x80/1, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+or, 0x8, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|NF|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+or, 0x83/1, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+or, 0x80/1, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 xor, 0x30, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 xor, 0x83/6, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 xor, 0x34, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 xor, 0x80/6, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-xor, 0x30, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-xor, 0x83/6, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-xor, 0x80/6, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+xor, 0x30, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|EVex128|EVexMap4|NF|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+xor, 0x83/6, APX_F|x64, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+xor, 0x80/6, 0, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+xor, 0x30, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4|NF|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+xor, 0x83/6, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+xor, 0x80/6, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 // clr with 1 operand is really xor with 2 operands.
 clr, 0x30, 0, W|Modrm|No_sSuf|RegKludge|Optimize, { Reg8|Reg16|Reg32|Reg64 }
@@ -365,7 +396,8 @@ adc, 0x83/2, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|E
 adc, 0x80/2, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-neg, 0xf6/3, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+neg, 0xf6/3, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+neg, 0xf6/3, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -401,11 +433,21 @@ cqto, 0x99, x64, Size64|NoSuf, {}
 // 'imul %ebx, %eax' (opcode 0x0faf must be used in this case)
 // These multiplies can only be selected with single operand forms.
 mul, 0xf6/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+mul, 0xf6/4, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
 imul, 0xf6/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 imul, 0xfaf, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64 }
-imul, 0xaf, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 imul, 0x6b, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 imul, 0x69, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+
+imul, 0xf6/5, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+imul, 0xaf, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64 }
+
+imul, 0xaf, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
+
+imul, 0x6b, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+imul, 0x69, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 // imul with 2 operands mimics imul with 3 by putting the register in
 // both i.rm.reg & i.rm.regmem fields.  RegKludge enables this
 // transformation.
@@ -416,24 +458,38 @@ div, 0xf6/6, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|
 div, 0xf6/6, 0, W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
 idiv, 0xf6/7, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 idiv, 0xf6/7, 0, W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+div, 0xf6/6, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+idiv, 0xf6/7, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 rol, 0xd0/0, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rol, 0xc0/0, i186, W|Modrm|No_sSuf, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rol, 0xd2/0, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rol, 0xd0/0, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-rol, 0xc0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-rol, 0xd2/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rol, 0xc0/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rol, 0xd2/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rol, 0xc0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rol, 0xd2/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+rol, 0xd0/0, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 ror, 0xd0/1, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ror, 0xc0/1, i186, W|Modrm|No_sSuf, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ror, 0xd2/1, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ror, 0xd0/1, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-ror, 0xc0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-ror, 0xd2/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ror, 0xc0/1, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ror, 0xd2/1, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+ror, 0xc0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm8|Imm8S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+ror, 0xd2/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+ror, 0xd0/1, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 rcl, 0xd0/2, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 rcl, 0xc0/2, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
@@ -474,42 +530,70 @@ shl, 0xd0/4, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|
 shl, 0xc0/4, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shl, 0xd2/4, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shl, 0xd0/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-shl, 0xc0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-shl, 0xd2/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shl, 0xc0/4, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shl, 0xd2/4, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shl, 0xc0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shl, 0xd2/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shl, 0xd0/4, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 shr, 0xd0/5, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shr, 0xc0/5, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shr, 0xd2/5, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 shr, 0xd0/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-shr, 0xc0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-shr, 0xd2/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shr, 0xc0/5, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shr, 0xd2/5, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shr, 0xc0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shr, 0xd2/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+shr, 0xd0/5, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 sar, 0xd0/7, 0, W|Modrm|No_sSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sar, 0xc0/7, i186, W|Modrm|No_sSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sar, 0xd2/7, 0, W|Modrm|No_sSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 sar, 0xd0/7, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-sar, 0xc0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-sar, 0xd2/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
-sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+
+sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sar, 0xc0/7, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sar, 0xd2/7, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sar, 0xc0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sar, 0xd2/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+sar, 0xd0/7, APX_F|x64, W|Modrm|No_sSuf|CheckOperandSize|VexVVVV|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 shld, 0xfa4, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shld, 0xfa5, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shld, 0xfa5, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
-shld, 0x24, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+
+shld, 0x24, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shld, 0x24, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shld, 0xa5, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 shrd, 0xfac, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shrd, 0xfad, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 shrd, 0xfad, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
-shrd, 0x2c, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+
+shrd, 0x2c, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shrd, 0x2c, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+shrd, 0xad, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // Control transfer instructions.
 call, 0xe8, No64, JumpDword|DefaultSize|No_bSuf|No_sSuf|No_qSuf|BNDPrefixOk, { Disp16|Disp32 }
@@ -971,7 +1055,8 @@ rex.wrxb, 0x4f, x64, NoSuf|IsPrefix, {}
 <pseudopfx:ident:cpu, disp8:Disp8:0, disp16:Disp16:0, disp32:Disp32:0, +
                       load:Load:0, store:Store:0, +
                       vex:VEX:0, vex2:VEX:0, vex3:VEX3:0, evex:EVEX:0, +
-                      rex:REX:x64, rex2:REX2:x64, nooptimize:NoOptimize:0>
+                      rex:REX:x64, rex2:REX2:x64, nf:NF:x64, +
+		      nooptimize:NoOptimize:0>
 
 {<pseudopfx>}, PSEUDO_PREFIX/Prefix_<pseudopfx:ident>, <pseudopfx:cpu>, NoSuf|IsPrefix, {}
 
@@ -1910,7 +1995,7 @@ xtest, 0xf01d6, HLE|RTM, NoSuf, {}
 // BMI2 instructions.
 
 bzhi, 0xf5, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-bzhi, 0xf5, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+bzhi, 0xf5, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|NF|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 mulx, 0xf2f6, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 mulx, 0xf2f6, BMI2|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 pdep, 0xf2f5, BMI2, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
@@ -1995,16 +2080,17 @@ lwpins, 0x12/0, LWP, Modrm|SpaceXOP0A|NoSuf|VexVVVV|Vex, { Imm32|Imm32S, Reg32|U
 // BMI instructions
 
 andn, 0xf2, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
-andn, 0xf2, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+andn, 0xf2, BMI|APX_F, Modrm|CheckOperandSize|EVex128|NF|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 bextr, 0xf7, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-bextr, 0xf7, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+bextr, 0xf7, BMI|APX_F, Modrm|CheckOperandSize|EVex128|NF|Space0F38|VexVVVV|SwapSources|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64, Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 blsi, 0xf3/3, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-blsi, 0xf3/3, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+blsi, 0xf3/3, BMI|APX_F, Modrm|CheckOperandSize|EVex128|NF|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 blsmsk, 0xf3/2, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-blsmsk, 0xf3/2, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+blsmsk, 0xf3/2, BMI|APX_F, Modrm|CheckOperandSize|EVex128|NF|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 blsr, 0xf3/1, BMI, Modrm|CheckOperandSize|Vex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-blsr, 0xf3/1, BMI|APX_F, Modrm|CheckOperandSize|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
+blsr, 0xf3/1, BMI|APX_F, Modrm|CheckOperandSize|EVex128|NF|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 tzcnt, 0xf30fbc, BMI, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+tzcnt, 0xf4, BMI, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // TBM instructions
 
@@ -2082,9 +2168,11 @@ insertq, 0xf20f78, SSE4a, Modrm|NoSuf, { Imm8, Imm8, RegXMM, RegXMM }
 
 // LZCNT instruction
 lzcnt, 0xf30fbd, LZCNT, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lzcnt, 0xf5, LZCNT|APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // POPCNT instruction
 popcnt, 0xf30fb8, POPCNT, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+popcnt, 0x88, POPCNT|APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // VIA PadLock extensions.
 xstore-rng, 0xfa7c0, PadLock, NoSuf|RepPrefixOk, {}
-- 
2.25.1


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

* [PATCH 8/8] Support APX JMPABS
  2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
                   ` (6 preceding siblings ...)
  2023-09-19 15:25 ` [PATCH 7/8] Support APX NF Cui, Lili
@ 2023-09-19 15:25 ` Cui, Lili
  2023-09-28 13:11   ` Jan Beulich
  7 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-09-19 15:25 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, Hu, Lin1

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

gas/ChangeLog:

	* config/tc-i386.c (is_any_apx_encoding): Add jmpabs.
	(is_any_apx_rex2_encoding): Ditto.
	* testsuite/gas/i386/i386.exp: Add tests.
	* testsuite/gas/i386/x86-64.exp: Ditto.
	* testsuite/gas/i386/apx-jmpabs-inval.l: New test.
	* testsuite/gas/i386/apx-jmpabs-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-jmpabs-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-jmpabs-inval.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-jmpabs-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-mov-inval.l: Ditto.
	* testsuite/gas/i386/x86-64-apx-mov-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-jmpabs.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-jmpabs.s: Ditto.

opcodes/ChangeLog:

	* i386-dis.c (JMPABS_Fixup): New Fixup function to disassemble jmpabs.
	(print_insn): Add #UD exception for jmpabs.
	(dis386): Modify a1 unit for support jmpabs.
	* i386-mnem.h: Regenerated.
	* i386-opc.tbl: New insns.
	* i386-tbl.h: Regenerated.
---
 gas/config/tc-i386.c                          |  6 +-
 gas/testsuite/gas/i386/apx-jmpabs-inval.l     |  3 +
 gas/testsuite/gas/i386/apx-jmpabs-inval.s     |  6 ++
 gas/testsuite/gas/i386/apx-mov-inval.l        |  2 +
 gas/testsuite/gas/i386/i386.exp               |  1 +
 .../gas/i386/x86-64-apx-jmpabs-intel.d        | 14 +++++
 .../gas/i386/x86-64-apx-jmpabs-inval.d        | 55 +++++++++++++++++++
 .../gas/i386/x86-64-apx-jmpabs-inval.s        | 18 ++++++
 gas/testsuite/gas/i386/x86-64-apx-jmpabs.d    | 14 +++++
 gas/testsuite/gas/i386/x86-64-apx-jmpabs.s    | 10 ++++
 gas/testsuite/gas/i386/x86-64-apx-mov-inval.l |  2 +
 gas/testsuite/gas/i386/x86-64-apx-mov-inval.s |  5 ++
 gas/testsuite/gas/i386/x86-64.exp             |  4 ++
 opcodes/i386-dis.c                            | 42 +++++++++++++-
 opcodes/i386-opc.tbl                          |  4 +-
 15 files changed, 182 insertions(+), 4 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/apx-jmpabs-inval.l
 create mode 100644 gas/testsuite/gas/i386/apx-jmpabs-inval.s
 create mode 100644 gas/testsuite/gas/i386/apx-mov-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-jmpabs.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-mov-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-mov-inval.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 1fe4980f26a..36720d40eb0 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3880,6 +3880,7 @@ is_any_apx_encoding (void)
     || i.tm.opcode_space == SPACE_EVEXMAP4
     || i.has_nf
     || i.has_zero_upper
+    || i.tm.mnem_off == MN_jmpabs
     || (i.vex.register_specifier
 	&& i.vex.register_specifier->reg_flags & RegRex2);
 }
@@ -3887,7 +3888,8 @@ is_any_apx_encoding (void)
 static INLINE bool
 is_any_apx_rex2_encoding (void)
 {
-  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;
+  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding
+	  || i.tm.mnem_off == MN_jmpabs;
 }
 
 static INLINE bool
@@ -7703,7 +7705,7 @@ match_template (char mnem_suffix)
   if (!quiet_warnings)
     {
       if (!intel_syntax
-	  && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE)))
+	  && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE) && t->mnem_off != MN_jmpabs))
 	as_warn (_("indirect %s without `*'"), insn_name (t));
 
       if (t->opcode_modifier.isprefix
diff --git a/gas/testsuite/gas/i386/apx-jmpabs-inval.l b/gas/testsuite/gas/i386/apx-jmpabs-inval.l
new file mode 100644
index 00000000000..87e7a800f1a
--- /dev/null
+++ b/gas/testsuite/gas/i386/apx-jmpabs-inval.l
@@ -0,0 +1,3 @@
+.* Assembler messages:
+.*:5: Error: `jmpabs' is only supported in 64-bit mode
+.*:6: Error: `jmpabs' is only supported in 64-bit mode
diff --git a/gas/testsuite/gas/i386/apx-jmpabs-inval.s b/gas/testsuite/gas/i386/apx-jmpabs-inval.s
new file mode 100644
index 00000000000..1f9f1f80b72
--- /dev/null
+++ b/gas/testsuite/gas/i386/apx-jmpabs-inval.s
@@ -0,0 +1,6 @@
+# Check 32bit illegal APX_F JMPABS instructions
+
+	.text
+ _start:
+	jmpabs	      $0x0202020202020202
+	jmpabs	      $0x2
diff --git a/gas/testsuite/gas/i386/apx-mov-inval.l b/gas/testsuite/gas/i386/apx-mov-inval.l
new file mode 100644
index 00000000000..b1aa91ae3c9
--- /dev/null
+++ b/gas/testsuite/gas/i386/apx-mov-inval.l
@@ -0,0 +1,2 @@
+.* Assembler messages:
+.*:5: Error: unsupport rex2 pseudo prefix for `mov'
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 7e0ad339141..d842505a928 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -508,6 +508,7 @@ if [gas_32_check] then {
     run_dump_test "sm4-intel"
     run_list_test "pbndkb-inval"
     run_list_test "apx-push2pop2-inval"
+    run_list_test "apx-jmpabs-inval"
     run_list_test "sg"
     run_dump_test "clzero"
     run_dump_test "invlpgb"
diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d
new file mode 100644
index 00000000000..d8407bdd92b
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-intel.d
@@ -0,0 +1,14 @@
+#as:
+#objdump: -dw -Mintel
+#name: x86_64 APX_F JMPABS insns (Intel disassembly)
+#source: x86-64-apx-jmpabs.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs 0x202020202020202
+\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs 0x2
+\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs 0x202020202020202
+\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs 0x2
diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d
new file mode 100644
index 00000000000..5c887acfebc
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.d
@@ -0,0 +1,55 @@
+#as: --64
+#objdump: -dw
+#name: illegal decoding of APX_F jmpabs insns
+#source: x86-64-apx-jmpabs-inval.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <.text>:
+\s*[a-f0-9]+:	66 64 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	66 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	67 64 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	67 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	f2 64 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	f2 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	f3 64 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	f3 d5 00 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	d5 08 a1\s+\(bad\)
+\s*[a-f0-9]+:	01 00\s+add    %eax,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*[a-f0-9]+:	00 00\s+add    %al,\(%rax\)
+\s*...
diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s
new file mode 100644
index 00000000000..3642d430546
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs-inval.s
@@ -0,0 +1,18 @@
+# Check bytecode of APX_F jmpabs instructions with illegal encode.
+
+	.allow_index_reg
+	.text
+# With 66 prefix
+	.byte 0x66,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+	.byte 0x66,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+# With 67 prefix
+	.byte 0x67,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+	.byte 0x67,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+# With F2 prefix
+	.byte 0xf2,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+	.byte 0xf2,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+# With F3 prefix
+	.byte 0xf3,0x64,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+	.byte 0xf3,0xd5,0x00,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+# REX2.M0 = 0 REX2.W = 1
+	.byte 0xd5,0x08,0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00
diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs.d b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.d
new file mode 100644
index 00000000000..409943dd9b9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.d
@@ -0,0 +1,14 @@
+#as:
+#objdump: -dw
+#name: x86_64 APX_F JMPABS insns
+#source: x86-64-apx-jmpabs.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs \$0x202020202020202
+\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs \$0x2
+\s*[a-f0-9]+:\s*d5 00 a1 02 02 02 02 02 02 02 02\s+jmpabs \$0x202020202020202
+\s*[a-f0-9]+:\s*d5 00 a1 02 00 00 00 00 00 00 00\s+jmpabs \$0x2
diff --git a/gas/testsuite/gas/i386/x86-64-apx-jmpabs.s b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.s
new file mode 100644
index 00000000000..beb722421bd
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-jmpabs.s
@@ -0,0 +1,10 @@
+# Check 64bit APX_F JMPABS instructions
+
+	.text
+ _start:
+	jmpabs	      $0x0202020202020202
+	jmpabs	      $0x2
+
+.intel_syntax noprefix
+	jmpabs	      0x0202020202020202
+	jmpabs	      0x2
diff --git a/gas/testsuite/gas/i386/x86-64-apx-mov-inval.l b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.l
new file mode 100644
index 00000000000..b1aa91ae3c9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.l
@@ -0,0 +1,2 @@
+.* Assembler messages:
+.*:5: Error: unsupport rex2 pseudo prefix for `mov'
diff --git a/gas/testsuite/gas/i386/x86-64-apx-mov-inval.s b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.s
new file mode 100644
index 00000000000..f0896da6b4d
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-mov-inval.s
@@ -0,0 +1,5 @@
+# Check 64bit illegal APX_F mov instructions with rex2 prefix
+
+	.text
+ _start:
+	{rex2}	mov	      %fs:0x0202020202020202, %rax
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 9aaa905393b..cf64b1f0000 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -374,6 +374,10 @@ run_dump_test "x86-64-apx-evex-egpr"
 run_dump_test "x86-64-apx-ndd"
 run_dump_test "x86-64-apx-nf"
 run_dump_test "x86-64-apx-nf-intel"
+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-avx512f-rcigrz-intel"
 run_dump_test "x86-64-avx512f-rcigrz"
 run_dump_test "x86-64-clwb"
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index b3ede02df06..e2e903afde4 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -105,6 +105,7 @@ static bool FXSAVE_Fixup (instr_info *, int, int);
 static bool MOVSXD_Fixup (instr_info *, int, int);
 static bool DistinctDest_Fixup (instr_info *, int, int);
 static bool PREFETCHI_Fixup (instr_info *, int, int);
+static bool JMPABS_Fixup (instr_info *, int, int);
 
 static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const disassemble_info *,
 						enum disassembler_style,
@@ -260,6 +261,9 @@ struct instr_info
   char scale_char;
 
   enum x86_64_isa isa64;
+
+  /* Remember if the current op is jmpabs instructions.  */
+  bool jmpabs;
 };
 
 struct dis_private {
@@ -2057,7 +2061,7 @@ static const struct dis386 dis386[] = {
   { "lahf",		{ XX }, 0 },
   /* a0 */
   { "mov%LB",		{ AL, Ob }, 0 },
-  { "mov%LS",		{ eAX, Ov }, 0 },
+  { "mov%LS",		{ { JMPABS_Fixup, eAX_reg }, { JMPABS_Fixup, v_mode } }, 0 },
   { "mov%LB",		{ Ob, AL }, 0 },
   { "mov%LS",		{ Ov, eAX }, 0 },
   { "movs{b|}",		{ Ybr, Xb }, 0 },
@@ -9690,6 +9694,15 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
       goto out;
     }
 
+  if (ins.jmpabs
+      && ((ins.prefixes & (PREFIX_OPCODE | PREFIX_ADDR)) != 0x0
+	  || (ins.rex2_payload & 0x8) != 0x0))
+    {
+      i386_dis_printf (info, dis_style_text, "(bad)");
+      ret = ins.end_codep - priv.the_buffer;
+      goto out;
+    }
+
   switch (dp->prefix_requirement)
     {
     case PREFIX_DATA:
@@ -13877,3 +13890,30 @@ PREFETCHI_Fixup (instr_info *ins, int bytemode, int sizeflag)
 
   return OP_M (ins, bytemode, sizeflag);
 }
+
+static bool
+JMPABS_Fixup (instr_info *ins, int bytemode, int sizeflag)
+{
+  if (ins->address_mode == mode_64bit
+      && ins->last_rex2_prefix >= 0
+      && (ins->rex2_payload & 0x80) == 0x0)
+    {
+      uint64_t op;
+
+      if (bytemode == eAX_reg)
+	return true;
+
+      if (!get64 (ins, &op))
+	return false;
+
+      ins->mnemonicendp = stpcpy (ins->obuf, "jmpabs");
+      ins->all_prefixes[ins->last_rex2_prefix] = 0;
+      ins->jmpabs = true;
+      oappend_immediate (ins, op);
+      return true;
+    }
+
+  if (bytemode == eAX_reg)
+    return OP_IMREG (ins, bytemode, sizeflag);
+  return OP_OFF64 (ins, v_mode, sizeflag);
+}
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 4e8ef15c28b..4d1b6742060 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -161,7 +161,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, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
+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 }
 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
@@ -623,6 +623,8 @@ ljmp, 0xea, No64, JumpInterSegment|No_bSuf|No_sSuf|No_qSuf, { Imm16, Imm16|Imm32
 ljmp, 0xff/5, 0, Amd64|Modrm|JumpAbsolute|No_bSuf|No_sSuf|No_qSuf, { Unspecified|BaseIndex }
 ljmp, 0xff/5, x64, Intel64|Modrm|JumpAbsolute|No_bSuf|No_sSuf, { Unspecified|BaseIndex }
 
+jmpabs, 0xa1, APX_F|x64, JumpAbsolute|NoSuf, { Imm64 }
+
 ret, 0xc3, No64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|RepPrefixOk|BNDPrefixOk, {}
 ret, 0xc2, No64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|RepPrefixOk|BNDPrefixOk, { Imm16 }
 ret, 0xc3, x64, Amd64|DefaultSize|No_bSuf|No_lSuf|No_sSuf|NoRex64|RepPrefixOk|BNDPrefixOk, {}
-- 
2.25.1


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

* Re: [PATCH 1/8] Support APX GPR32 with rex2 prefix
  2023-09-19 15:25 ` [PATCH 1/8] Support APX GPR32 with rex2 prefix Cui, Lili
@ 2023-09-21 15:27   ` Jan Beulich
  2023-09-27 15:57     ` Cui, Lili
  2023-09-21 15:51   ` Jan Beulich
  1 sibling, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-21 15:27 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, konglin1, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -247,6 +247,7 @@ enum i386_error
>      invalid_vector_register_set,
>      invalid_tmm_register_set,
>      invalid_dest_and_src_register_set,
> +    invalid_pseudo_prefix,
>      unsupported_vector_index_register,
>      unsupported_broadcast,
>      broadcast_needed,
> @@ -353,6 +354,7 @@ struct _i386_insn
>      modrm_byte rm;
>      rex_byte rex;
>      rex_byte vrex;
> +    rex_byte rex2; // for extends gpr32 r16-r31

Malformed comment. I'm not convinced one needs to be here in the first place.

> @@ -405,6 +407,11 @@ struct _i386_insn
>      /* Compressed disp8*N attribute.  */
>      unsigned int memshift;
>  
> +    /* No CSPAZO flags update.*/
> +    bool has_nf;
> +
> +    bool has_zero_upper;
> +
>      /* Prefer load or store in encoding.  */
>      enum
>        {
> @@ -426,6 +433,9 @@ struct _i386_insn
>      /* Prefer the REX byte in encoding.  */
>      bool rex_encoding;
>  
> +    /* Prefer the REX2 byte in encoding.  */
> +    bool rex2_encoding;

What is "the REX2 byte"? There are two bytes involved there ...

> @@ -1165,6 +1175,7 @@ static const arch_entry cpu_arch[] =
>    VECARCH (sm4, SM4, ANY_SM4, reset),
>    SUBARCH (pbndkb, PBNDKB, PBNDKB, false),
>    VECARCH (avx10.1, AVX10_1, ANY_AVX512F, set),
> +  SUBARCH (apx_f, APX_F, APX_F, false),
>  };
>  
>  #undef SUBARCH
> @@ -1694,6 +1705,7 @@ is_cpu (const insn_template *t, enum i386_cpu cpu)
>      case CpuHLE:      return t->cpu.bitfield.cpuhle;
>      case CpuAVX512F:  return t->cpu.bitfield.cpuavx512f;
>      case CpuAVX512VL: return t->cpu.bitfield.cpuavx512vl;
> +    case CpuAPX_F:      return t->cpu.bitfield.cpuapx_f;

Nit: Please get padding right.

>      case Cpu64:       return t->cpu.bitfield.cpu64;
>      case CpuNo64:     return t->cpu.bitfield.cpuno64;
>      default:
> @@ -2332,6 +2344,9 @@ register_number (const reg_entry *r)
>    if (r->reg_flags & RegRex)
>      nr += 8;
>  
> +  if (r->reg_flags & RegRex2)
> +    nr += 16;
> +
>    if (r->reg_flags & RegVRex)
>      nr += 16;
>  
> @@ -3832,6 +3847,18 @@ is_any_vex_encoding (const insn_template *t)
>    return t->opcode_modifier.vex || is_evex_encoding (t);
>  }
>  
> +static INLINE bool
> +is_any_apx_encoding (void)
> +{
> +  return i.rex2 || i.rex2_encoding;
> +}
> +
> +static INLINE bool
> +is_any_apx_rex2_encoding (void)
> +{
> +  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;
> +}

There's no particularly good place to make this remark: I was expecting
REX2 handling to rather follow REX handling, not VEX/EVEX one. I certainly
consider at least the first helper's name misleading (APX also includes
various EVEX encodings, after all), and I also don't really like you
(ab)using i.vex.length for REX2 handling.

> @@ -4089,6 +4116,19 @@ build_evex_prefix (void)
>      i.vex.bytes[3] |= i.mask.reg->reg_num;
>  }
>  
> +/* Build (2 bytes) rex2 prefix.
> +   | D5h |
> +   | m | R4 X4 B4 | W R X B |
> +*/
> +static void
> +build_rex2_prefix (void)
> +{
> +  i.vex.length = 2;
> +  i.vex.bytes[0] = 0xd5;
> +  i.vex.bytes[1] = ((i.tm.opcode_space << 7)
> +		    | (i.rex2 << 4) | i.rex);
> +}
> +
>  static void
>  process_immext (void)
>  {
> @@ -4354,12 +4394,12 @@ optimize_encoding (void)
>  	  i.suffix = 0;
>  	  /* Convert to byte registers.  */
>  	  if (i.types[1].bitfield.word)
> -	    j = 16;
> +	    j = 16 + 16; // new 16 apx additional gprs.
>  	  else if (i.types[1].bitfield.dword)
> -	    j = 32;
> +	    j = 32 + 16 * 2; // new 16 apx additional gprs
>  	  else
> -	    j = 48;
> -	  if (!(i.op[1].regs->reg_flags & RegRex) && base_regnum < 4)
> +	    j = 48 + 16 * 3; // new 16 apx additional gprs
> +	  if (!(i.op[1].regs->reg_flags & (RegRex | RegRex2)) && base_regnum < 4)
>  	    j += 8;

This is getting unwieldy: There are too many hard-coded literal numbers
here, and there continues to be zero indication in i386-reg.tbl that the
order of entries is actually relevant.

Also again, please write wellformed comments (when such are useful).

> @@ -5269,6 +5309,9 @@ md_assemble (char *line)
>  	case invalid_dest_and_src_register_set:
>  	  err_msg = _("destination and source registers must be distinct");
>  	  break;
> +	case invalid_pseudo_prefix:
> +	  err_msg = _("unsupport rex2 pseudo prefix");

If at all, "unsupported". Maybe better "cannot be used here"?

> @@ -5498,7 +5541,17 @@ md_assemble (char *line)
>        as_warn (_("translating to `%sp'"), insn_name (&i.tm));
>      }
>  
> -  if (is_any_vex_encoding (&i.tm))
> +  if (is_any_apx_encoding ())
> +    {
> +      if (!is_any_vex_encoding (&i.tm)

I think you should be able to use a cheaper predicate here. No VEX-
encoded APX insns exist, aiui.

> +	  && i.tm.opcode_space <= SPACE_0F
> +	  && !i.vex.register_specifier && !i.has_nf && !i.has_zero_upper)

Is the i.vex.register_specifier check really needed here? Any such template
would be an EVEX one, wouldn't it (so the earlier check already covered
those)?

> +	build_rex2_prefix ();
> +
> +      /* The individual REX.RXBW bits got consumed.  */
> +      i.rex &= REX_OPCODE;

As to my earlier naming remark - much of course depends on what the further
plans here are.

> +    }
> +  else if (is_any_vex_encoding (&i.tm))
>      {
>        if (!cpu_arch_flags.bitfield.cpui286)
>  	{
> @@ -5514,6 +5567,13 @@ md_assemble (char *line)
>  	  return;
>  	}
>  
> +      /* Check for explicit REX2 prefix.  */
> +      if (i.rex2 || i.rex2_encoding)
> +	{
> +	  as_bad (_("REX2 prefix invalid with `%s'"), insn_name (&i.tm));
> +	  return;
> +	}
> +
>        if (i.tm.opcode_modifier.vex)
>  	build_vex_prefix (t);
>        else
> @@ -5553,11 +5613,11 @@ md_assemble (char *line)
>  	  && (i.op[1].regs->reg_flags & RegRex64) != 0)
>        || (((i.types[0].bitfield.class == Reg && i.types[0].bitfield.byte)
>  	   || (i.types[1].bitfield.class == Reg && i.types[1].bitfield.byte))
> -	  && i.rex != 0))
> +	  && (i.rex != 0 || i.rex2!=0)))

Nit: Please get coding style right (also elsewhere).

>      {
>        int x;
> -
> -      i.rex |= REX_OPCODE;
> +      if (!i.rex2)
> +	i.rex |= REX_OPCODE;
>        for (x = 0; x < 2; x++)
>  	{
>  	  /* Look for 8 bit operand that uses old registers.  */
> @@ -5567,9 +5627,16 @@ md_assemble (char *line)
>  	      gas_assert (!(i.op[x].regs->reg_flags & RegRex));
>  	      /* In case it is "hi" register, give up.  */
>  	      if (i.op[x].regs->reg_num > 3)
> -		as_bad (_("can't encode register '%s%s' in an "
> -			  "instruction requiring REX prefix."),
> -			register_prefix, i.op[x].regs->reg_name);
> +		{
> +		  if (i.rex)
> +		    as_bad (_("can't encode register '%s%s' in an "
> +			      "instruction requiring REX prefix."),
> +			    register_prefix, i.op[x].regs->reg_name);
> +		  else
> +		    as_bad (_("can't encode register '%s%s' in an "
> +			      "instruction requiring REX2 prefix."),
> +			    register_prefix, i.op[x].regs->reg_name);
> +		}

I don't think separate messages are needed here, Just alter the
existing one to say "... REX/REX2 ...".

> @@ -5580,7 +5647,7 @@ md_assemble (char *line)
>  	}
>      }
>  
> -  if (i.rex == 0 && i.rex_encoding)
> +  if ((i.rex == 0 && i.rex_encoding) || (i.rex2 == 0 && i.rex2_encoding))
>      {
>        /* Check if we can add a REX_OPCODE byte.  Look for 8 bit operand
>  	 that uses legacy register.  If it is "hi" register, don't add

I think this comment wants updating as well, so there's no question of
it having gone stale (by mentioning only REX_OPCODE).

> @@ -6899,6 +6971,42 @@ VEX_check_encoding (const insn_template *t)
>    return 0;
>  }
>  
> +/* Check if Egprs operands are valid for the instruction.  */
> +
> +static int
> +check_EgprOperands (const insn_template *t)
> +{
> +  if (t->opcode_modifier.no_egpr)
> +    {
> +      for (unsigned int op = 0; op < i.operands; op++)
> +	{
> +	  if (i.types[op].bitfield.class != Reg)
> +	    continue;
> +
> +	  if (i.op[op].regs->reg_flags & RegRex2)
> +	    {
> +	      i.error = register_type_mismatch;

Already here I wonder if re-using this error indicator (and hence
issuing the same error message as is issued for other reasons) is
going to be helpful. However, ...

> +	      return 1;
> +	    }
> +	}
> +
> +      if ((i.index_reg && (i.index_reg->reg_flags & RegRex2))
> +	  || (i.base_reg && (i.base_reg->reg_flags & RegRex2)))
> +	{
> +	  i.error = register_type_mismatch;

... here I'm certain it needs to be a different one. It should be
made obvious that the register used is part of the address for the
memory operand, not a register one.

> +	  return 1;
> +	}
> +
> +      /* Check pseudo prefix {rex2} are valid.  */
> +      if (i.rex2_encoding)
> +	{
> +	  i.error = invalid_pseudo_prefix;
> +	  return 1;
> +	}
> +    }
> +  return 0;
> +}

Transiently, until more checking is added (like patch 2 in the second
series you've sent), you'll break all kinds of insns which don't
have No_egpr set, but which aren't valid to be used with the extended
registers (e.g. all VEX encodings, to name one large group).

> @@ -13985,6 +14115,14 @@ static bool check_register (const reg_entry *r)
>  	i.vec_encoding = vex_encoding_error;
>      }
>  
> +  if (r->reg_flags & RegRex2)
> +    {
> +      if (!cpu_arch_flags.bitfield.cpuapx_f
> +	  || flag_code != CODE_64BIT
> +	  || i.rex_encoding)

I'm not sure i.rex_encoding is valid to check (already) here. Or else
you'd also need to check i.vec_encoding.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
> @@ -0,0 +1,18 @@
> +# Check Illegal 64bit APX instructions
> +	.text
> +	.arch .noapx_f
> +	test    $0x7, %r17d
> +	.arch .apx_f
> +	test    $0x7, %r17d
> +	xsave (%r16, %rbx)
> +	xsave64 (%r16, %rbx)
> +	xrstor (%r16, %rbx)
> +	xrstor64 (%r16, %rbx)
> +	xsaves (%r16, %rbx)
> +	xsaves64 (%r16, %rbx)
> +	xrstors (%r16, %rbx)
> +	xrstors64 (%r16, %rbx)
> +	xsaveopt (%r16, %rbx)
> +	xsaveopt64 (%r16, %rbx)
> +	xsavec (%r16, %rbx)
> +	xsavec64 (%r16, %rbx)

Don't you also want to check the index register?

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.d
> @@ -0,0 +1,29 @@
> +#as:
> +#objdump: -dw
> +#name: x86-64 APX use gpr32 with rex2 prefix illegal check
> +#source: x86-64-apx-rex2-inval.s
> +
> +.*: +file format .*
> +
> +
> +Disassembly of section .text:
> +
> +0+ <_start>:
> +\s*[a-f0-9]+:\s*d5 f0 d5 f0\s+{rex2} pmullw %mm0,%mm6
> +\s*[a-f0-9]+:\s*d5 f9 d5 f9\s+{rex2} pmullw %mm1,%mm7
> +\s*[a-f0-9]+:\s*d5 88 d5 f9\s+{rex2} pmullw %mm1,%mm7
> +\s*[a-f0-9]+:\s*d5 f7 d5 f9\s+{rex2} pmullw %mm1,%mm7
> +\s*[a-f0-9]+:\s*d5 80 d5 f9\s+{rex2} pmullw %mm1,%mm7
> +\s*[a-f0-9]+:\s*66 d5 f9 d5 f9\s+{rex2} pmullw %xmm9,%xmm7

These all look valid, yet the test name says "invalid" and the title says
"illegal". Can you clarify what this is about?

Also may I ask that you use [ 	] instead of \s, to aid readability?

> +\s*[a-f0-9]+:\s*66 41\s+data16 rex.B
> +\s*[a-f0-9]+:\s*d5 f9 d5 f9\s+{rex2} pmullw %mm1,%mm7
> +\s*[a-f0-9]+:\s*d5 ff 21 f8\s+{rex2} mov %db15,%r24
> +\s*[a-f0-9]+:\s*d5 01 21 00\s+{rex2} and %eax,\(%r8\)
> +\s*[a-f0-9]+:\s*d5 00 00 f7\s+{rex2} add %sil,%dil
> +\s*[a-f0-9]+:\s*d5 ff 20 f8\s+{rex2} mov %cr15,%r24
> +\s*[a-f0-9]+:\s*d5 81 ae\s+\(bad\)
> +\s*[a-f0-9]+:\s*27\s+\(bad\)
> +\s*[a-f0-9]+:\s*d5 c1 38\s+\(bad\)
> +\s*[a-f0-9]+:\s*f6\s+.byte 0xf6
> +\s*[a-f0-9]+:\s*07\s+\(bad\)
> +#pass
> diff --git a/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s
> new file mode 100644
> index 00000000000..51dd8df79d6
> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s
> @@ -0,0 +1,25 @@
> +# Check 64bit instructions with rex2 prefix bad encoding
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +# check {rex2} pseudo prefix to force REX2 encoding.
> +.byte 0xd5, 0xf0, 0xd5, 0xf0
> +.byte 0xd5, 0xf9, 0xd5, 0xf9
> +.byte 0xd5, 0x88, 0xd5, 0xf9
> +.byte 0xd5, 0xf7, 0xd5, 0xf9
> +.byte 0xd5, 0x80, 0xd5, 0xf9
> +
> +.byte 0x66
> +.byte 0xd5, 0xf9, 0xd5, 0xf9
> +.byte 0x66, 0x41
> +.byte 0xd5, 0xf9, 0xd5, 0xf9
> +.byte 0xd5, 0xff, 0x21, 0xf8
> +.byte 0xd5, 0x01, 0x21, 0x00
> +.byte 0xd5, 0x00, 0x00, 0xf7
> +.byte 0xd5, 0xff, 0x20, 0xf8
> +# check xsave/xstore are not allowed to use rex2.
> +.byte 0xd5, 0x81, 0xae, 0x27
> +# check rex2 only use for map0/1
> +.byte 0xd5, 0xc1, 0x38, 0xf6, 0x07

Please try to limit .byte use in source as much as possible. Emitting
bogus prefixes may require its use, but that should be about it.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-rex2.s
> @@ -0,0 +1,175 @@
> +# Check 64bit instructions with rex2 prefix encoding
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +         test	$0x7, %r24b
> +         test	$0x7, %r24d
> +         test	$0x7, %r24
> +         test	$0x7, %r24w
> +## R bit
> +         leal	(%rax), %r16d
> +         leal	(%rax), %r17d
> +         leal	(%rax), %r18d
> +         leal	(%rax), %r19d
> +         leal	(%rax), %r20d
> +         leal	(%rax), %r21d
> +         leal	(%rax), %r22d
> +         leal	(%rax), %r23d
> +         leal	(%rax), %r24d
> +         leal	(%rax), %r25d
> +         leal	(%rax), %r26d
> +         leal	(%rax), %r27d
> +         leal	(%rax), %r28d
> +         leal	(%rax), %r29d
> +         leal	(%rax), %r30d
> +         leal	(%rax), %r31d
> +## X bit
> +         leal	(,%r16), %eax
> +         leal	(,%r17), %eax
> +         leal	(,%r18), %eax
> +         leal	(,%r19), %eax
> +         leal	(,%r20), %eax
> +         leal	(,%r21), %eax
> +         leal	(,%r22), %eax
> +         leal	(,%r23), %eax
> +         leal	(,%r24), %eax
> +         leal	(,%r25), %eax
> +         leal	(,%r26), %eax
> +         leal	(,%r27), %eax
> +         leal	(,%r28), %eax
> +         leal	(,%r29), %eax
> +         leal	(,%r30), %eax
> +         leal	(,%r31), %eax
> +## B bit
> +         leal	(%r16), %eax
> +         leal	(%r17), %eax
> +         leal	(%r18), %eax
> +         leal	(%r19), %eax
> +         leal	(%r20), %eax
> +         leal	(%r21), %eax
> +         leal	(%r22), %eax
> +         leal	(%r23), %eax
> +         leal	(%r24), %eax
> +         leal	(%r25), %eax
> +         leal	(%r26), %eax
> +         leal	(%r27), %eax
> +         leal	(%r28), %eax
> +         leal	(%r29), %eax
> +         leal	(%r30), %eax
> +         leal	(%r31), %eax
> +## SIB
> +         leal	1(%r20), %eax
> +         leal	1(%r28), %eax
> +         leal	129(%r20), %eax
> +         leal	129(%r28), %eax

I don't see why the comment says "SIB" for these.

> +## W bit
> +         leaq	(%rax), %r15
> +         leaq	(%rax), %r16
> +         leaq	(%r15), %rax
> +         leaq	(%r16), %rax
> +         leaq	(,%r15), %rax
> +         leaq	(,%r16), %rax
> +## M bit
> +         imull	%eax, %r15d
> +         imull	%eax, %r16d
> +	 punpckldq (%r18), %mm2 #D5906212

Please ensure consistent indentation, and please omit meaningless comments.

> +## AddRegFrm
> +         movl	$1, %r16d

From here onwards I'm afraid I can't decipher any of the comments. In many
cases the choice of what to test (and what not) looks pretty random.

> --- a/opcodes/i386-dis.c
> +++ b/opcodes/i386-dis.c

(I'll look at the disassembler parts separately. This and the other patches
are quite a bit too large anyway.)

> --- a/opcodes/i386-gen.c
> +++ b/opcodes/i386-gen.c
> @@ -380,6 +380,7 @@ static bitfield cpu_flags[] =
>    BITFIELD (RAO_INT),
>    BITFIELD (FRED),
>    BITFIELD (LKGS),
> +  BITFIELD (APX_F),
>    BITFIELD (MWAITX),
>    BITFIELD (CLZERO),
>    BITFIELD (OSPKE),
> @@ -469,6 +470,7 @@ static bitfield opcode_modifiers[] =
>    BITFIELD (ATTSyntax),
>    BITFIELD (IntelSyntax),
>    BITFIELD (ISA64),
> +  BITFIELD (No_egpr),
>  };
>  

Additionally a dependency of APX_F on XSAVE needs introducing.

> --- a/opcodes/i386-opc.h
> +++ b/opcodes/i386-opc.h
> @@ -317,6 +317,8 @@ enum i386_cpu
>    CpuAVX512F,
>    /* Intel AVX-512 VL Instructions support required.  */
>    CpuAVX512VL,
> +  /* Intel APX Instructions support required.  */
> +  CpuAPX_F,

The comment kind of misses the F in the feature identifier.

> @@ -742,6 +745,10 @@ enum
>  #define INTEL64		2
>  #define INTEL64ONLY	3
>    ISA64,
> +
> +  /* egprs (r16-r31) on instruction illegal.  */
> +  No_egpr,

I'm not overly happy with the name and spelling. How about NoEgpr? That's
more in line with the majority of the attributes.

> @@ -789,6 +796,7 @@ typedef struct i386_opcode_modifier
>    unsigned int attsyntax:1;
>    unsigned int intelsyntax:1;
>    unsigned int isa64:2;
> +  unsigned int no_egpr:1;
>  } i386_opcode_modifier;
>  
>  /* Operand classes.  */
> @@ -988,7 +996,7 @@ typedef struct insn_template
>       AMD 3DNow! instructions.
>       If this template has no extension opcode (the usual case) use None
>       Instructions */
> -  signed int extension_opcode:9;
> +  signed int extension_opcode:0xA;

Why?

> @@ -1001,7 +1009,8 @@ typedef struct insn_template
>  #define Prefix_VEX3		6	/* {vex3} */
>  #define Prefix_EVEX		7	/* {evex} */
>  #define Prefix_REX		8	/* {rex} */
> -#define Prefix_NoOptimize	9	/* {nooptimize} */
> +#define Prefix_REX2		9	/* {rex2} */
> +#define Prefix_NoOptimize	0xA	/* {nooptimize} */

Any reason to use a hex number here?

> @@ -1028,6 +1037,7 @@ typedef struct
>  #define RegRex	    0x1  /* Extended register.  */
>  #define RegRex64    0x2  /* Extended 8 bit register.  */
>  #define RegVRex	    0x4  /* Extended vector register.  */
> +#define RegRex2	    0x8  /* Extended rex2 interge register.  */

Since I expect / hope the bit will be reused for extended EVEX encodings,
I don't think "rex2" should be mentioned here. Also "integer" please.

> @@ -93,6 +141,22 @@ r12, Class=Reg|Qword|BaseIndex, RegRex, 4, Dw2Inval, 12
>  r13, Class=Reg|Qword|BaseIndex, RegRex, 5, Dw2Inval, 13
>  r14, Class=Reg|Qword|BaseIndex, RegRex, 6, Dw2Inval, 14
>  r15, Class=Reg|Qword|BaseIndex, RegRex, 7, Dw2Inval, 15
> +r16, Class=Reg|Qword|BaseIndex, RegRex2, 0, Dw2Inval, 130
> +r17, Class=Reg|Qword|BaseIndex, RegRex2, 1, Dw2Inval, 131
> +r18, Class=Reg|Qword|BaseIndex, RegRex2, 2, Dw2Inval, 132
> +r19, Class=Reg|Qword|BaseIndex, RegRex2, 3, Dw2Inval, 133
> +r20, Class=Reg|Qword|BaseIndex, RegRex2, 4, Dw2Inval, 134
> +r21, Class=Reg|Qword|BaseIndex, RegRex2, 5, Dw2Inval, 135
> +r22, Class=Reg|Qword|BaseIndex, RegRex2, 6, Dw2Inval, 136
> +r23, Class=Reg|Qword|BaseIndex, RegRex2, 7, Dw2Inval, 137
> +r24, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 0, Dw2Inval, 138
> +r25, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 1, Dw2Inval, 139
> +r26, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 2, Dw2Inval, 140
> +r27, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 3, Dw2Inval, 141
> +r28, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 4, Dw2Inval, 142
> +r29, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 5, Dw2Inval, 143
> +r30, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 6, Dw2Inval, 144
> +r31, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 7, Dw2Inval, 145

I wonder how the Dwarf register number were chosen ...

Jan

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

* Re: [PATCH 1/8] Support APX GPR32 with rex2 prefix
  2023-09-19 15:25 ` [PATCH 1/8] Support APX GPR32 with rex2 prefix Cui, Lili
  2023-09-21 15:27   ` Jan Beulich
@ 2023-09-21 15:51   ` Jan Beulich
  2023-09-27 15:59     ` Cui, Lili
  1 sibling, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-21 15:51 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, konglin1, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/opcodes/i386-dis.c
> +++ b/opcodes/i386-dis.c
> @@ -144,6 +144,12 @@ struct instr_info
>    /* Bits of REX we've already used.  */
>    uint8_t rex_used;
>  
> +  /* REX2 prefix for the current instruction use gpr32(r16-r31). */
> +  unsigned char rex2;
> +  /* Bits of REX2 we've already used.  */
> +  unsigned char rex2_used;

Since these two fields don't hold the REX2 bits directly, the comment(s)
want(s) saying what they contain.

> +  unsigned char rex2_payload;

I don't see this field used in more than one function. In which case it can
be a local variable there (in the innermost scope covering all uses).

> @@ -367,6 +381,7 @@ fetch_error (const instr_info *ins)
>  #define PREFIX_IGNORED_DATA	(PREFIX_DATA << PREFIX_IGNORED_SHIFT)
>  #define PREFIX_IGNORED_ADDR	(PREFIX_ADDR << PREFIX_IGNORED_SHIFT)
>  #define PREFIX_IGNORED_LOCK	(PREFIX_LOCK << PREFIX_IGNORED_SHIFT)
> +#define PREFIX_IGNORED_REX2	(PREFIX_REX2 << PREFIX_IGNORED_SHIFT)

I don't think "ignored" is what you mean, considering ...

> @@ -2794,9 +2817,9 @@ static const struct dis386 reg_table[][8] = {
>      { Bad_Opcode },
>      { "cmpxchg8b", { { CMPXCHG8B_Fixup, q_mode } }, 0 },
>      { Bad_Opcode },
> -    { "xrstors", { FXSAVE }, 0 },
> -    { "xsavec", { FXSAVE }, 0 },
> -    { "xsaves", { FXSAVE }, 0 },
> +    { "xrstors", { FXSAVE }, PREFIX_IGNORED_REX2 },
> +    { "xsavec", { FXSAVE }, PREFIX_IGNORED_REX2 },
> +    { "xsaves", { FXSAVE }, PREFIX_IGNORED_REX2 },
>      { MOD_TABLE (MOD_0FC7_REG_6) },
>      { MOD_TABLE (MOD_0FC7_REG_7) },
>    },
> @@ -3364,7 +3387,7 @@ static const struct dis386 prefix_table[][4] = {
>  
>    /* PREFIX_0FAE_REG_4_MOD_0 */
>    {
> -    { "xsave",	{ FXSAVE }, 0 },
> +    { "xsave",	{ FXSAVE }, PREFIX_IGNORED_REX2 },
>      { "ptwrite{%LQ|}", { Edq }, 0 },
>    },
>  
> @@ -3382,7 +3405,7 @@ static const struct dis386 prefix_table[][4] = {
>  
>    /* PREFIX_0FAE_REG_6_MOD_0 */
>    {
> -    { "xsaveopt",	{ FXSAVE }, PREFIX_OPCODE },
> +    { "xsaveopt",	{ FXSAVE }, PREFIX_OPCODE | PREFIX_IGNORED_REX2 },
>      { "clrssbsy",	{ Mq }, PREFIX_OPCODE },
>      { "clwb",	{ Mb }, PREFIX_OPCODE },
>    },
> @@ -8125,7 +8148,7 @@ static const struct dis386 mod_table[][2] = {
>    },
>    {
>      /* MOD_0FAE_REG_5 */
> -    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE },
> +    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE | PREFIX_IGNORED_REX2 },
>      { PREFIX_TABLE (PREFIX_0FAE_REG_5_MOD_3) },
>    },

... these uses here.

> @@ -8751,6 +8796,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>        break;
>  
>      case USE_VEX_C4_TABLE:
> +      if (ins->last_rex2_prefix >= 0)
> +	return &bad_opcode;
>        /* VEX prefix.  */
>        if (!fetch_code (ins->info, ins->codep + 3))
>  	return &err_opcode;
> @@ -8812,6 +8859,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>        break;
>  
>      case USE_VEX_C5_TABLE:
> +      if (ins->last_rex2_prefix >= 0)
> +	return &bad_opcode;
>        /* VEX prefix.  */
>        if (!fetch_code (ins->info, ins->codep + 2))
>  	return &err_opcode;
> @@ -8853,6 +8902,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>        break;
>  
>      case USE_EVEX_TABLE:
> +      if (ins->last_rex2_prefix >= 0)
> +	return &bad_opcode;
>        ins->two_source_ops = false;
>        /* EVEX prefix.  */
>        ins->vex.evex = true;

There aren't similar REX checks here, yet both should be handled as similarly
as possible.

> @@ -9292,13 +9344,17 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
>        goto out;
>      }
>  
> -  if (*ins.codep == 0x0f)
> +  /* M0 in rex2 prefix represents map0 or map1.  */
> +  if (*ins.codep == 0x0f || (ins.rex2 & 0x8))

Please can literals like the 0x8 here gain meaningful names (REX2_M in this
case)?

> @@ -9468,6 +9532,7 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
>        ins.used_prefixes |= PREFIX_DATA;
>        /* Fall through.  */
>      case PREFIX_OPCODE:
> +    case PREFIX_OPCODE | PREFIX_IGNORED_REX2:

You may rather want to mask off the high part in the switch() expression
itself.

> @@ -9510,9 +9575,17 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
>  
>    /* Check if the REX prefix is used.  */
>    if ((ins.rex ^ ins.rex_used) == 0
> -      && !ins.need_vex && ins.last_rex_prefix >= 0)
> +      && !ins.need_vex && ins.last_rex_prefix >= 0
> +      && ins.last_rex2_prefix < 0)
>      ins.all_prefixes[ins.last_rex_prefix] = 0;
>  
> +  /* Check if the REX2 prefix is used.  */
> +  if (ins.last_rex2_prefix >= 0
> +      && ((((ins.rex2 & 0x7) ^ (ins.rex2_used & 0x7)) == 0
> +	   && (ins.rex2 & 0x7))
> +	  || dp == &bad_opcode))
> +    ins.all_prefixes[ins.last_rex2_prefix] = 0;

I'm again puzzled by the dissimilarity with the REX handling. Furthermore,
with the way you split the REX2 payload byte, I don't think the combination
of REX and REX2 handling above will result in correct output in all cases.
(There shouldn't be mention of an unused REX bit when REX2 was in use on an
insn.)

> @@ -11307,6 +11386,7 @@ static bool
>  OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
>  {
>    int add = (ins->rex & REX_B) ? 8 : 0;
> +  add += (ins->rex2 & REX_B) ? 16 : 0;
>    int riprel = 0;
>    int shift;

While generally mixing declaration and statements is okay nowadays, putting
a statement in the middle of a block's initial declarations would imo still
better be avoided.

Jan

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-09-19 15:25 ` [PATCH 2/8] Support APX GPR32 with extend evex prefix Cui, Lili
@ 2023-09-22 10:12   ` Jan Beulich
  2023-10-17 15:48     ` Cui, Lili
  2023-09-22 10:50   ` Jan Beulich
  2023-09-25  6:03   ` Jan Beulich
  2 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-22 10:12 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -1945,6 +1945,30 @@ cpu_flags_match (const insn_template *t)
>  		  && (!x.bitfield.cpuvpclmulqdq || cpu.bitfield.cpuvpclmulqdq))
>  		match |= CPU_FLAGS_ARCH_MATCH;
>  	    }
> +	  else if (x.bitfield.cpuapx_f)
> +	    {
> +	      if (cpu.bitfield.cpuapx_f
> +		  && (!x.bitfield.cpumovbe || cpu.bitfield.cpumovbe)
> +		  && (!x.bitfield.cpuept || cpu.bitfield.cpuept)
> +		  && (!x.bitfield.cpuinvpcid || cpu.bitfield.cpuinvpcid)
> +		  && (!x.bitfield.cpusse4_2 || cpu.bitfield.cpusse4_2)
> +		  && (!x.bitfield.cpubmi2 || cpu.bitfield.cpubmi2)
> +		  && (!x.bitfield.cpubmi || cpu.bitfield.cpubmi)
> +		  && (!x.bitfield.cpuadx || cpu.bitfield.cpuadx)
> +		  && (!x.bitfield.cpusha || cpu.bitfield.cpusha)
> +		  && (!x.bitfield.cpuavx512bw || cpu.bitfield.cpuavx512bw)
> +		  && (!x.bitfield.cpuavx512dq || cpu.bitfield.cpuavx512dq)
> +		  && (!x.bitfield.cpuavx512f || cpu.bitfield.cpuavx512f)
> +		  && (!x.bitfield.cpushstk || cpu.bitfield.cpushstk)
> +		  && (!x.bitfield.cpumovdir64b || cpu.bitfield.cpumovdir64b)
> +		  && (!x.bitfield.cpumovdiri || cpu.bitfield.cpumovdiri)
> +		  && (!x.bitfield.cpuenqcmd || cpu.bitfield.cpuenqcmd)
> +		  && (!x.bitfield.cpukl || cpu.bitfield.cpukl)
> +		  && (!x.bitfield.cpuwidekl || cpu.bitfield.cpuwidekl)
> +		  && (!x.bitfield.cpucmpccxadd || cpu.bitfield.cpucmpccxadd)
> +		  && (!x.bitfield.cpurao_int || cpu.bitfield.cpurao_int))
> +		match |= CPU_FLAGS_ARCH_MATCH;
> +	    }
>  	  else
>  	    match |= CPU_FLAGS_ARCH_MATCH;
>

This is getting unwieldy, so I think we will need to think of a better way
of expressing both "multiple ISAs need to be enabled" and "one of a set of
ISAs needs to be enabled". It's only the mix of these expressed in a
uniform way in the insn table that requires these extra conditionals. With
the size of i386_cpu_attr greatly shrunk as of recently, I wonder if we
couldn't simply add a 2nd instance of it to insn_template. One would be
"all of these are required", while the other would be "any one of these is
sufficient".

> @@ -3850,7 +3874,10 @@ is_any_vex_encoding (const insn_template *t)
>  static INLINE bool
>  is_any_apx_encoding (void)
>  {
> -  return i.rex2 || i.rex2_encoding;
> +  return i.rex2 
> +    || i.rex2_encoding
> +    || (i.vex.register_specifier
> +	&& i.vex.register_specifier->reg_flags & RegRex2);

Nit: For readability as well as for consistency this wants indenting
differently:

  return i.rex2
	 || i.rex2_encoding
	 || (i.vex.register_specifier
	     && i.vex.register_specifier->reg_flags & RegRex2);

or possibly (slightly shorter)

  return i.rex2 || i.rex2_encoding
	 || (i.vex.register_specifier
	     && i.vex.register_specifier->reg_flags & RegRex2);

In any event you want to avoid trailing blanks on any line.

> @@ -3859,6 +3886,12 @@ is_any_apx_rex2_encoding (void)
>    return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;
>  }
>  
> +static INLINE bool
> +is_any_apx_evex_encoding (void)
> +{
> +  return i.rex2 && i.vex.length == 4;
> +}

This doesn't feel right: {evex} use would demand this encoding even if
i.rex2 is still zero.

Also - what is "any" in the name (also of the earlier predicate) intending
to express? is_any_vex_encoding() is named the way it is because it covers
both VEX and EVEX.

> @@ -4129,6 +4162,50 @@ build_rex2_prefix (void)
>  		    | (i.rex2 << 4) | i.rex);
>  }
>  
> +/* Build the EVEX prefix (4-byte) for evex insn
> +   | 62h |
> +   | `R`X`B`R' | B'mmm |
> +   | W | v`v`v`v | `x' | pp |
> +   | z| L'L | b | `v | aaa |
> +*/
> +static void
> +build_evex_insns_with_extend_evex_prefix (void)

The name is somewhat odd and doesn't fit that of other similar functions.
In particular this function doesn't build an entire insn, but still just
the prefix. So perhaps build_apx_evex_prefix()?

> +{
> +  build_evex_prefix ();
> +  if (i.rex2 & REX_R)
> +    i.vex.bytes[1] &= 0xef;
> +  if (i.vex.register_specifier
> +      && register_number (i.vex.register_specifier) > 0xf)
> +    i.vex.bytes[3] &=0xf7;

Nit: Missing blank.

But: Is this needed? Doesn't build_evex_prefix() fill this bit already,
which isn't new in APX?

> +  if (i.rex2 & REX_B)
> +    i.vex.bytes[1] |= 0x08;
> +  if (i.rex2 & REX_X)
> +    i.vex.bytes[2] &= 0xfb;
> +}
> +
> +/* Build the EVEX prefix (4-byte) for legacy insn
> +   | 62h |
> +   | `R`X`B`R' | B'100 |
> +   | W | v`v`v`v | `x' | pp |
> +   | 000 | ND | `v | NF | 00 |
> +   For legacy insn without ndd nor nf, [vvvvv] must be all zero.  */
> +static void
> +build_legacy_insns_with_apx_encoding (void)

As per above, maybe build_extended_evex_prefix()? Or, ...

> +{
> +  /* map{0,1} of legacy space without ndd or nf could use rex2 prefix.  */
> +  if (i.tm.opcode_space <= SPACE_0F
> +      && !i.vex.register_specifier && !i.has_nf && !i.has_zero_upper)
> +    return build_rex2_prefix ();

... because of this, build_apx_prefix()? Yet I think the call to this
function might better remain in the caller.

> +  if (i.prefix[DATA_PREFIX] != 0)
> +    {
> +      i.tm.opcode_modifier.opcodeprefix = PREFIX_0X66;
> +      i.prefix[DATA_PREFIX] = 0;
> +    }

While this looks to be correct for the case when the prefix was derived
from an insn template and the use of 16-bit operands, I don't think it
is uniformly correct when "data16" was used as a prefix explicitly. In
such a case either REX2 encoding needs to be used, or an error needs
emitting.

You may further want to assert that i.tm.opcode_modifier.opcodeprefix
is still zero ahead of the assignment.

> @@ -10057,7 +10136,7 @@ output_insn (void)
>  
>        /* Since the VEX/EVEX prefix contains the implicit prefix, we
>  	 don't need the explicit prefix.  */
> -      if (!is_any_vex_encoding (&i.tm))
> +      if (!is_any_vex_encoding (&i.tm) && !is_any_apx_evex_encoding ())
>  	{
>  	  switch (i.tm.opcode_modifier.opcodeprefix)

I'm not convinced the use of this predicate is appropriate here. I'd
generally have expected is_any_vex_encoding() to be extended to also
detect all cases of EVEX encodings in APX.

> --- a/opcodes/i386-dis-evex-len.h
> +++ b/opcodes/i386-dis-evex-len.h

As for the earlier patch, I'll look at the disassembler changes separately.

> @@ -1121,6 +1122,15 @@ process_i386_opcode_modifier (FILE *table, char *mod, unsigned int space,
>  	fprintf (stderr,
>  		 "%s: %d: W modifier without Word/Dword/Qword operand(s)\n",
>  		 filename, lineno);
> +      if (modifiers[Vex].value
> +	  || (space > SPACE_0F
> +	      && !(space == SPACE_EVEXMAP4
> +		   || modifiers[EVex].value
> +		   || modifiers[Disp8MemShift].value
> +		   || modifiers[Broadcast].value
> +		   || modifiers[Masking].value
> +		   || modifiers[SAE].value)))

First of all, this wants simplifying to

      if (modifiers[Vex].value
	  || (space > SPACE_0F
	      && space != SPACE_EVEXMAP4
	      && !modifiers[EVex].value
	      && !modifiers[Disp8MemShift].value
	      && !modifiers[Broadcast].value
	      && !modifiers[Masking].value
	      && !modifiers[SAE].value))

which helps readability and makes more obvious that this parallels
tc-i386.c:is_evex_encoding(). Such a connection, where updates need
to be made in sync, needs pointing out in code comments at both sites.

Yet of course this condition won't hold anymore for combined VEX/EVEX
templates.

> +	modifiers[No_egpr].value = 1;
>      }

And then - shouldn't at least part of this already be put in place in
patch 1?

Finally, to avoid the split between where this attribute gets set,
wouldn't it be possible to also handle the XSAVE/XRSTOR variants here
rather than directly in the opcode table?

> @@ -187,6 +188,7 @@ mov, 0xf24, i386|No64, D|RegMem|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf, { Te
>  
>  // Move after swapping the bytes
>  movbe, 0x0f38f0, Movbe, D|Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> +movbe, 0x60, Movbe|APX_F|x64, D|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }

In new code please omit redundant Word, Dword, and alike.

I further wonder if it wouldn't help if i386-gen inserted the x64 for
all APX templates, rather than open-coding that on every single template.
Or alternatively put

#define APX_F APX_F|x64

earlier in the file.

> @@ -300,6 +302,9 @@ sbb, 0x18, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg
>  sbb, 0x83/3, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
>  sbb, 0x1c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
>  sbb, 0x80/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +sbb, 0x18, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +sbb, 0x83/3, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> +sbb, 0x80/3, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
>  
>  cmp, 0x38, 0, D|W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
>  cmp, 0x83/7, 0, Modrm|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> @@ -332,9 +337,14 @@ adc, 0x10, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg
>  adc, 0x83/2, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
>  adc, 0x14, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
>  adc, 0x80/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +adc, 0x10, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +adc, 0x83/2, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> +adc, 0x80/2, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
>  
>  neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +
>  not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }

Looking at just the additions up to here, I'm getting the impression that
in this patch - despite its title - you only add non-ND, non-NF insn forms
for previously non-VEX-encoded insns. This could do with clarifying, by
both making the title more concise and by stating the exact scope of the
work done in the description.

> @@ -1312,13 +1330,16 @@ getsec, 0xf37, SMX, NoSuf, {}
>  
>  invept, 0x660f3880, EPT|No64, Modrm|IgnoreSize|NoSuf, { Oword|Unspecified|BaseIndex, Reg32 }
>  invept, 0x660f3880, EPT|x64, Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
> +invept, 0xf3f0, APX_F|EPT|x64, Modrm|NoSuf|NoRex64|EVex128|EVexMap4, { Oword|Unspecified|BaseIndex, Reg64 }
>  invvpid, 0x660f3881, EPT|No64, Modrm|IgnoreSize|NoSuf, { Oword|Unspecified|BaseIndex, Reg32 }
>  invvpid, 0x660f3881, EPT|x64, Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
> +invvpid, 0xf3f1, APX_F|EPT|x64, Modrm|NoSuf|NoRex64|EVex128|EVexMap4, { Oword|Unspecified|BaseIndex, Reg64 }
>  
>  // INVPCID instruction
>  
>  invpcid, 0x660f3882, INVPCID|No64, Modrm|IgnoreSize|NoSuf, { Oword|Unspecified|BaseIndex, Reg32 }
>  invpcid, 0x660f3882, INVPCID|x64, Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
> +invpcid, 0xf3f2, APX_F|INVPCID|x64, Modrm|NoSuf|NoRex64|EVex128|EVexMap4, { Oword|Unspecified|BaseIndex, Reg64 }

I don't think NoRex64 belongs in any EVEX template.

> @@ -1418,7 +1439,9 @@ pcmpestrm, 0x660f3a60, SSE4_2|x64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { I
>  pcmpistri<sse42>, 0x660f3a63, <sse42:cpu>, Modrm|<sse42:attr>|NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
>  pcmpistrm<sse42>, 0x660f3a62, <sse42:cpu>, Modrm|<sse42:attr>|NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
>  crc32, 0xf20f38f0, SSE4_2, W|Modrm|No_sSuf|No_qSuf, { Reg8|Reg16|Reg32|Unspecified|BaseIndex, Reg32 }
> +crc32, 0xf0, APX_F|x64, W|Modrm|No_sSuf|No_qSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Unspecified|BaseIndex, Reg32 }
>  crc32, 0xf20f38f0, SSE4_2|x64, W|Modrm|No_wSuf|No_lSuf|No_sSuf, { Reg8|Reg64|Unspecified|BaseIndex, Reg64 }
> +crc32, 0xf0, APX_F|x64, W|Modrm|No_wSuf|No_lSuf|No_sSuf|EVex128|EVexMap4, { Reg8|Reg64|Unspecified|BaseIndex, Reg64 }

There's quite a bit of logic in tc-i386.c to get CRC32 right. I wonder
if you can really get away without adjusting that logic to also take
effect on the EVEX encodings.

> @@ -3408,3 +3487,4 @@ erets, 0xf20f01ca, FRED|x64, NoSuf, {}
>  eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
>  
>  // FRED instructions end.
> +

Nit: Stray change.

Jan

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-09-19 15:25 ` [PATCH 2/8] Support APX GPR32 with extend evex prefix Cui, Lili
  2023-09-22 10:12   ` Jan Beulich
@ 2023-09-22 10:50   ` Jan Beulich
  2023-10-17 15:50     ` Cui, Lili
  2023-09-25  6:03   ` Jan Beulich
  2 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-22 10:50 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/opcodes/i386-dis-evex-len.h
> +++ b/opcodes/i386-dis-evex-len.h
> @@ -62,6 +62,16 @@ static const struct dis386 evex_len_table[][3] = {
>      { REG_TABLE (REG_EVEX_0F38C7_L_2) },
>    },
>  
> +  /* EVEX_LEN_0F38F2 */
> +  {
> +    { "andnS",		{ Gdq, VexGdq, Edq }, 0 },
> +  },
> +
> +  /* EVEX_LEN_0F38F3 */
> +  {
> +    { REG_TABLE(REG_EVEX_0F38F3_L_0) },
> +  },
> +
>    /* EVEX_LEN_0F3A00 */
>    {
>      { Bad_Opcode },
> diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h
> index f9f912c5094..5a1326a1b73 100644
> --- a/opcodes/i386-dis-evex-mod.h
> +++ b/opcodes/i386-dis-evex-mod.h
> @@ -1 +1,51 @@
>  /* Nothing at present.  */
> +  /* MOD_EVEX_MAP4_65 */
> +  {
> +    { "wrussK",		{ M, Gdq }, PREFIX_DATA },
> +  },
> +  /* MOD_EVEX_MAP4_66_PREFIX_0 */
> +  {
> +    { "wrssK",		{ M, Gdq }, 0 },
> +  },

Not very long ago I invested quite a bit of time to remove unnecessary
decoding through mod_table[]. Please don't introduce new instances.
Entries should be added here only when both branches are populated
(iow it looks as if this patch shouldn't touch this file at all).

> --- a/opcodes/i386-dis-evex-prefix.h
> +++ b/opcodes/i386-dis-evex-prefix.h
> @@ -338,6 +338,89 @@
>      { "vcmpp%XH", { MaskG, Vex, EXxh, EXxEVexS, CMP }, 0 },
>      { "vcmps%XH", { MaskG, VexScalar, EXw, EXxEVexS, CMP }, 0 },
>    },
> +  /* PREFIX_EVEX_MAP4_60 */
> +  {
> +    { "movbeS",	{ Gv, Ev }, 0 },
> +    { Bad_Opcode },
> +    { "movbeS",	{ Gv, Ev }, 0 },
> +  },
> +  /* PREFIX_EVEX_MAP4_61 */
> +  {
> +    { "movbeS",	{ Ev, Gv }, 0 },
> +    { Bad_Opcode },
> +    { "movbeS",	{ Ev, Gv }, 0 },
> +  },

In cases like this (of which, aiui, there will be many more), where only
prefix 66 is valid, and only to modify operand size, it would be quite
desirable to have a new PREFIX_... identifier to use in the parent table
entry, such that this additional decode step can be avoided.

> --- /dev/null
> +++ b/opcodes/i386-dis-evex-x86.h

I'm puzzled by the name suffix: x86 is kind of redundant with i386. Main
question perhaps is: Do we really need a new file here? It's not a lot
that is put here right now, but of course I haven't peeked ahead.

> --- a/opcodes/i386-dis-evex.h
> +++ b/opcodes/i386-dis-evex.h
> @@ -164,10 +164,10 @@ static const struct dis386 evex_table[][256] = {
>      { Bad_Opcode },
>      { Bad_Opcode },
>      /* 90 */
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F90) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F91) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F92) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F93) },
>      { Bad_Opcode },
>      { Bad_Opcode },
>      { Bad_Opcode },
> @@ -375,9 +375,9 @@ static const struct dis386 evex_table[][256] = {
>      { "vpsllv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
>      /* 48 */
>      { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F3849) },
>      { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F384B) },
>      { "vrcp14p%XW",	{ XM, EXx }, PREFIX_DATA },
>      { "vrcp14s%XW",	{ XMScalar, VexScalar, EXdq }, PREFIX_DATA },
>      { "vrsqrt14p%XW",	{ XM, EXx }, 0 },
> @@ -545,32 +545,32 @@ static const struct dis386 evex_table[][256] = {
>      { "%XEvaesdecY",	{ XM, Vex, EXx }, PREFIX_DATA },
>      { "%XEvaesdeclastY", { XM, Vex, EXx }, PREFIX_DATA },
>      /* E0 */
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E0) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E1) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E2) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E3) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E4) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E5) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E6) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E7) },
>      /* E8 */
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E8) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38E9) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EA) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EB) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EC) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38ED) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EE) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38EF) },
>      /* F0 */
>      { Bad_Opcode },
>      { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F2) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F3) },
>      { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> -    { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F5) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F6) },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F7) },
>      /* F8 */
>      { Bad_Opcode },
>      { Bad_Opcode },
> @@ -854,7 +854,7 @@ static const struct dis386 evex_table[][256] = {
>      { Bad_Opcode },
>      { Bad_Opcode },
>      /* F0 */
> -    { Bad_Opcode },
> +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F3AF0) },
>      { Bad_Opcode },
>      { Bad_Opcode },
>      { Bad_Opcode },
> @@ -872,7 +872,7 @@ static const struct dis386 evex_table[][256] = {
>      { Bad_Opcode },
>      { Bad_Opcode },
>    },
> -  /* EVEX_MAP5_ */
> +  /* EVEX_MAP4_ */

While just an artifact from this, ...

> @@ -893,8 +893,8 @@ static const struct dis386 evex_table[][256] = {
>      { Bad_Opcode },
>      { Bad_Opcode },
>      /* 10 */
> -    { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
> -    { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
> +    { Bad_Opcode },
> +    { Bad_Opcode },
>      { Bad_Opcode },
>      { Bad_Opcode },
>      { Bad_Opcode },
> @@ -907,7 +907,7 @@ static const struct dis386 evex_table[][256] = {
>      { Bad_Opcode },
>      { Bad_Opcode },
>      { Bad_Opcode },
> -    { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
> +    { Bad_Opcode },
>      { Bad_Opcode },
>      { Bad_Opcode },
>      /* 20 */

... changes like these are extremely odd to read. Can you please try
to split this patch such that initially you simply introduce an empty
new sub-table, to avoid such anomalies (which will also affect "git
blame" then, I expect)?

> --- a/opcodes/i386-dis.c
> +++ b/opcodes/i386-dis.c
> @@ -132,6 +132,13 @@ enum x86_64_isa
>    intel64
>  };
>  
> +enum evex_type
> +{
> +  evex_default = 0,
> +  evex_from_legacy,
> +  evex_from_vex,
> +};
> +
>  struct instr_info
>  {
>    enum address_mode address_mode;
> @@ -212,7 +219,6 @@ struct instr_info
>      int ll;
>      bool w;
>      bool evex;
> -    bool r;

The change to eliminate this field would certainly be nice to be separate
from the bulk of thw APX changes here.

Jan

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-09-19 15:25 ` [PATCH 2/8] Support APX GPR32 with extend evex prefix Cui, Lili
  2023-09-22 10:12   ` Jan Beulich
  2023-09-22 10:50   ` Jan Beulich
@ 2023-09-25  6:03   ` Jan Beulich
  2023-10-17 15:52     ` Cui, Lili
  2 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-25  6:03 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> @@ -300,6 +302,9 @@ sbb, 0x18, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg
>  sbb, 0x83/3, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
>  sbb, 0x1c, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
>  sbb, 0x80/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +sbb, 0x18, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +sbb, 0x83/3, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> +sbb, 0x80/3, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
>  
>  cmp, 0x38, 0, D|W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
>  cmp, 0x83/7, 0, Modrm|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> @@ -332,9 +337,14 @@ adc, 0x10, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg
>  adc, 0x83/2, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
>  adc, 0x14, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
>  adc, 0x80/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +adc, 0x10, APX_F|x64, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +adc, 0x83/2, APX_F|x64, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> +adc, 0x80/2, APX_F|x64, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
>  
>  neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +
>  not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }

I can't seem to be able to find the disassembly part for these. The
reason I've noticed is because I was meaning to figure how you deal
with EVEX.nf needing to be zero for those (and others). For that
bit specifically I expect we want a new %NF macro, which would be
used as !%NF when (bad) (or some such) wants printing instead of {nf}.

Similary I don't think I can spot anywhere that you would check the
other bits which need to be zero in extended EVEX. Nor Improper use
of EVEX.x4 in certain pre-existing encodings (S/G insns at least;
perhaps all others are okay).

Jan

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

* Re: [PATCH 7/8] Support APX NF
  2023-09-19 15:25 ` [PATCH 7/8] Support APX NF Cui, Lili
@ 2023-09-25  6:07   ` Jan Beulich
  2023-09-28 12:42   ` Jan Beulich
  1 sibling, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-09-25  6:07 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, binutils

On 19.09.2023 17:25, Cui, Lili wrote:

(Only peeking ahead; not a full review.)

> --- a/gas/testsuite/gas/i386/x86-64-apx-ndd.d
> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.d
> @@ -158,7 +158,7 @@ Disassembly of section .text:
>  \s*[a-f0-9]+:\s*67 62 f4 3c 18 4f 90 90 90 90 90 	cmovg  -0x6f6f6f70\(%eax\),%edx,%r8d
>  \s*[a-f0-9]+:\s*67 62 f4 3c 18 af 90 09 09 09 00 	imul   0x90909\(%eax\),%edx,%r8d
>  \s*[a-f0-9]+:\s*62 b4 b0 10 af 94 f8 09 09 00 00 	imul   0x909\(%rax,%r31,8\),%rdx,%r25
> -\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+inc    %rax
> +\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+\{evex\} inc %rax
>  \s*[a-f0-9]+:\s*62 f4 ec\s+\(bad\)
>  \s*[a-f0-9]+:\s*08 ff\s+or     %bh,%bh
>  \s*[a-f0-9]+:\s*c0\s+\.byte 0xc0

I don't think this change belongs here?

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-nf-intel.d
> @@ -0,0 +1,633 @@
> +#as:
> +#objdump: -dw -Mintel
> +#name: x86_64 APX_F insns (Intel disassembly)
> +#source: x86-64-apx-nf.s
> +
> +.*: +file format .*
> +
> +Disassembly of section \.text:
> +
> +0+ <_start>:
> +\s*[a-f0-9]+:\s*62 f4 7c 0c 80 c3 7b\s+\{nf\} add bl,0x7b
> +\s*[a-f0-9]+:\s*62 f4 6c 1c 80 c3 7b\s+\{nf\} add dl,bl,0x7b
> +\s*[a-f0-9]+:\s*62 f4 7d 0c 83 c2 7b\s+\{nf\} add dx,0x7b
> +\s*[a-f0-9]+:\s*62 f4 7d 1c 83 c2 7b\s+\{nf\} add ax,dx,0x7b
> +\s*[a-f0-9]+:\s*62 f4 7c 0c 83 c1 7b\s+\{nf\} add ecx,0x7b
> +\s*[a-f0-9]+:\s*62 f4 6c 1c 83 c1 7b\s+\{nf\} add edx,ecx,0x7b
> +\s*[a-f0-9]+:\s*62 d4 fc 0c 83 c1 7b\s+\{nf\} add r9,0x7b
> +\s*[a-f0-9]+:\s*62 d4 84 14 83 c1 7b\s+\{nf\} add r31,r9,0x7b

How was this notation established? Is it aligned with what other
(dis)assemblers (will) do? Following the doc, I was rather expecting
this to be a new kind-of-suffix: "add{nf} ...".

Jan

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

* Re: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-09-19 15:25 ` [PATCH 3/8] Add tests for " Cui, Lili
@ 2023-09-27 13:11   ` Jan Beulich
  2023-10-17 15:53     ` FW: " Cui, Lili
  2023-09-27 13:19   ` Jan Beulich
  1 sibling, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-27 13:11 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> gas/ChangeLog:
> 
> 	* testsuite/gas/i386/x86-64-apx-egpr-inval.l: Add some
> 	insn don't support gpr32
> 	* testsuite/gas/i386/x86-64-apx-egpr-inval.s: Ditto.
> 	* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s: Ditto.
> 	* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s: Ditto.
> 	* testsuite/gas/i386/x86-64.exp: Add x86-64-apx-evex-egpr,
> 	x86-64-apx-evex-legacy and x86-64-apx-evex-vex.
> 	* testsuite/gas/i386/x86-64-apx-evex-egpr.d: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-egpr.s: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-promoted-intrel.d: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-promoted.d: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-promoted.s: New test.
> ---
>  .../gas/i386/x86-64-apx-egpr-inval.l          |  190 ++-
>  .../gas/i386/x86-64-apx-egpr-inval.s          |  194 ++-
>  .../gas/i386/x86-64-apx-egpr-promote-inval.l  |   17 +
>  .../gas/i386/x86-64-apx-egpr-promote-inval.s  |   18 +
>  gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d |   22 +
>  gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s |   25 +
>  .../gas/i386/x86-64-apx-evex-promoted-intel.d |  740 +++++++++
>  .../gas/i386/x86-64-apx-evex-promoted.d       |  740 +++++++++
>  .../gas/i386/x86-64-apx-evex-promoted.s       | 1464 +++++++++++++++++
>  gas/testsuite/gas/i386/x86-64-evex.d          |    2 +-
>  gas/testsuite/gas/i386/x86-64-inval-movbe.l   |   31 +-
>  gas/testsuite/gas/i386/x86-64-inval-movbe.s   |    1 +
>  gas/testsuite/gas/i386/x86-64.exp             |    4 +
>  13 files changed, 3430 insertions(+), 18 deletions(-)
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.d
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
> 
> diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
> index c419f449f27..2fc8a4cc5f0 100644
> --- a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
> +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
> @@ -12,9 +12,197 @@
>  .*:16: Error: register type mismatch for `xsaveopt64'
>  .*:17: Error: register type mismatch for `xsavec'
>  .*:18: Error: register type mismatch for `xsavec64'
> +.*:20: Error: register type mismatch for `phaddw'
> +.*:21: Error: register type mismatch for `phaddd'
> +.*:22: Error: register type mismatch for `phaddsw'
> +.*:23: Error: register type mismatch for `phsubw'
> +.*:24: Error: register type mismatch for `pmaddubsw'
> +.*:25: Error: register type mismatch for `pmulhrsw'
> +.*:26: Error: register type mismatch for `pshufb'
> +.*:27: Error: register type mismatch for `psignb'
> +.*:28: Error: register type mismatch for `psignw'
> +.*:29: Error: register type mismatch for `psignd'
> +.*:30: Error: register type mismatch for `palignr'
> +.*:31: Error: register type mismatch for `pabsb'
> +.*:32: Error: register type mismatch for `pabsw'
> +.*:33: Error: register type mismatch for `pabsd'
> +.*:34: Error: register type mismatch for `blendpd'
> +.*:35: Error: register type mismatch for `blendps'
> +.*:36: Error: register type mismatch for `blendvpd'
> +.*:37: Error: register type mismatch for `blendvps'
> +.*:38: Error: register type mismatch for `blendvpd'
> +.*:39: Error: register type mismatch for `blendvps'
> +.*:40: Error: register type mismatch for `dppd'
> +.*:41: Error: register type mismatch for `dpps'
> +.*:42: Error: register type mismatch for `extractps'
> +.*:43: Error: register type mismatch for `extractps'
> +.*:44: Error: register type mismatch for `insertps'
> +.*:45: Error: register type mismatch for `movntdqa'
> +.*:46: Error: register type mismatch for `mpsadbw'
> +.*:47: Error: register type mismatch for `packusdw'
> +.*:48: Error: register type mismatch for `pblendvb'
> +.*:49: Error: register type mismatch for `pblendvb'
> +.*:50: Error: register type mismatch for `pblendw'
> +.*:51: Error: register type mismatch for `pcmpeqq'
> +.*:52: Error: register type mismatch for `pextrb'
> +.*:53: Error: register type mismatch for `pextrw'
> +.*:54: Error: register type mismatch for `pextrb'
> +.*:55: Error: register type mismatch for `pextrd'
> +.*:56: Error: register type mismatch for `pextrd'
> +.*:57: Error: register type mismatch for `phminposuw'
> +.*:58: Error: register type mismatch for `pinsrb'
> +.*:59: Error: register type mismatch for `pinsrb'
> +.*:60: Error: register type mismatch for `pinsrd'
> +.*:61: Error: register type mismatch for `pinsrd'
> +.*:62: Error: register type mismatch for `pinsrq'
> +.*:63: Error: register type mismatch for `pinsrq'
> +.*:64: Error: register type mismatch for `pmaxsb'
> +.*:65: Error: register type mismatch for `pmaxsd'
> +.*:66: Error: register type mismatch for `pmaxud'
> +.*:67: Error: register type mismatch for `pmaxuw'
> +.*:68: Error: register type mismatch for `pminsb'
> +.*:69: Error: register type mismatch for `pminsd'
> +.*:70: Error: register type mismatch for `pminud'
> +.*:71: Error: register type mismatch for `pminuw'
> +.*:72: Error: register type mismatch for `pmovsxbw'
> +.*:73: Error: register type mismatch for `pmovsxbd'
> +.*:74: Error: register type mismatch for `pmovsxbq'
> +.*:75: Error: register type mismatch for `pmovsxwd'
> +.*:76: Error: register type mismatch for `pmovsxwq'
> +.*:77: Error: register type mismatch for `pmovsxdq'
> +.*:78: Error: register type mismatch for `pmovsxbw'
> +.*:79: Error: register type mismatch for `pmovzxbd'
> +.*:80: Error: register type mismatch for `pmovzxbq'
> +.*:81: Error: register type mismatch for `pmovzxwd'
> +.*:82: Error: register type mismatch for `pmovzxwq'
> +.*:83: Error: register type mismatch for `pmovzxdq'
> +.*:84: Error: register type mismatch for `pmuldq'
> +.*:85: Error: register type mismatch for `pmulld'
> +.*:86: Error: register type mismatch for `roundpd'
> +.*:87: Error: register type mismatch for `roundps'
> +.*:88: Error: register type mismatch for `roundsd'
> +.*:89: Error: register type mismatch for `roundss'
> +.*:90: Error: register type mismatch for `pcmpgtq'
> +.*:91: Error: register type mismatch for `pcmpestri'
> +.*:92: Error: register type mismatch for `pcmpestrm'
> +.*:93: Error: register type mismatch for `pcmpistri'
> +.*:94: Error: register type mismatch for `pcmpistrm'
> +.*:96: Error: register type mismatch for `aesdec'
> +.*:97: Error: register type mismatch for `aesdeclast'
> +.*:98: Error: register type mismatch for `aesenc'
> +.*:99: Error: register type mismatch for `aesenclast'
> +.*:100: Error: register type mismatch for `aesimc'
> +.*:101: Error: register type mismatch for `aeskeygenassist'
> +.*:102: Error: register type mismatch for `pclmulqdq'
> +.*:103: Error: register type mismatch for `pclmullqlqdq'
> +.*:104: Error: register type mismatch for `pclmulhqlqdq'
> +.*:105: Error: register type mismatch for `pclmullqhqdq'
> +.*:106: Error: register type mismatch for `pclmulhqhqdq'
> +.*:108: Error: register type mismatch for `gf2p8affineqb'
> +.*:109: Error: register type mismatch for `gf2p8affineinvqb'
> +.*:110: Error: register type mismatch for `gf2p8mulb'
> +.*:112: Error: register type mismatch for `vblendpd'
> +.*:113: Error: register type mismatch for `vblendpd'
> +.*:114: Error: register type mismatch for `vblendps'
> +.*:115: Error: register type mismatch for `vblendps'
> +.*:116: Error: register type mismatch for `vblendvpd'
> +.*:117: Error: register type mismatch for `vblendvpd'
> +.*:118: Error: register type mismatch for `vblendvps'
> +.*:119: Error: register type mismatch for `vblendvps'
> +.*:120: Error: register type mismatch for `vdppd'
> +.*:121: Error: register type mismatch for `vdpps'
> +.*:122: Error: register type mismatch for `vdpps'
> +.*:123: Error: register type mismatch for `vhaddpd'
> +.*:124: Error: register type mismatch for `vhaddpd'
> +.*:125: Error: register type mismatch for `vhsubps'
> +.*:126: Error: register type mismatch for `vhsubps'
> +.*:127: Error: register type mismatch for `vlddqu'
> +.*:128: Error: register type mismatch for `vlddqu'
> +.*:129: Error: register type mismatch for `vldmxcsr'
> +.*:130: Error: register type mismatch for `vmaskmovpd'
> +.*:131: Error: register type mismatch for `vmaskmovpd'
> +.*:132: Error: register type mismatch for `vmaskmovps'
> +.*:133: Error: register type mismatch for `vmaskmovps'
> +.*:134: Error: register type mismatch for `vmaskmovpd'
> +.*:135: Error: register type mismatch for `vmaskmovpd'
> +.*:136: Error: register type mismatch for `vmaskmovps'
> +.*:137: Error: register type mismatch for `vmaskmovps'
> +.*:138: Error: register type mismatch for `vmovmskpd'
> +.*:139: Error: register type mismatch for `vmovmskpd'
> +.*:140: Error: register type mismatch for `vmovmskps'
> +.*:141: Error: register type mismatch for `vmovmskps'
> +.*:142: Error: register type mismatch for `vpblendvb'
> +.*:143: Error: register type mismatch for `vpblendvb'
> +.*:144: Error: register type mismatch for `vpblendw'
> +.*:145: Error: register type mismatch for `vpblendw'
> +.*:146: Error: register type mismatch for `vpcmpestri'
> +.*:147: Error: register type mismatch for `vpcmpestrm'
> +.*:148: Error: register type mismatch for `vperm2f128'
> +.*:149: Error: register type mismatch for `vphaddd'
> +.*:150: Error: register type mismatch for `vphaddsw'
> +.*:151: Error: register type mismatch for `vphaddw'
> +.*:152: Error: register type mismatch for `vphsubd'
> +.*:153: Error: register type mismatch for `vphsubsw'
> +.*:154: Error: register type mismatch for `vphsubw'
> +.*:155: Error: register type mismatch for `vphaddd'
> +.*:156: Error: register type mismatch for `vphaddsw'
> +.*:157: Error: register type mismatch for `vphaddw'
> +.*:158: Error: register type mismatch for `vphsubd'
> +.*:159: Error: register type mismatch for `vphsubsw'
> +.*:160: Error: register type mismatch for `vphsubw'
> +.*:161: Error: register type mismatch for `vphminposuw'
> +.*:162: Error: register type mismatch for `vpmovmskb'
> +.*:163: Error: register type mismatch for `vpmovmskb'
> +.*:164: Error: register type mismatch for `vpsignb'
> +.*:165: Error: register type mismatch for `vpsignw'
> +.*:166: Error: register type mismatch for `vpsignd'
> +.*:167: Error: register type mismatch for `vpsignb'
> +.*:168: Error: register type mismatch for `vpsignw'
> +.*:169: Error: register type mismatch for `vpsignd'
> +.*:170: Error: register type mismatch for `vptest'
> +.*:171: Error: register type mismatch for `vptest'
> +.*:172: Error: register type mismatch for `vrcpps'
> +.*:173: Error: register type mismatch for `vrcpps'
> +.*:174: Error: register type mismatch for `vrcpss'
> +.*:175: Error: register type mismatch for `vrsqrtps'
> +.*:176: Error: register type mismatch for `vrsqrtps'
> +.*:177: Error: register type mismatch for `vrsqrtss'
> +.*:178: Error: register type mismatch for `vstmxcsr'
> +.*:179: Error: register type mismatch for `vtestps'
> +.*:180: Error: register type mismatch for `vtestps'
> +.*:181: Error: register type mismatch for `vtestpd'
> +.*:182: Error: register type mismatch for `vtestps'
> +.*:183: Error: register type mismatch for `vtestpd'
> +.*:184: Error: register type mismatch for `vpblendd'
> +.*:185: Error: register type mismatch for `vpblendd'
> +.*:186: Error: register type mismatch for `vperm2i128'
> +.*:187: Error: register type mismatch for `vpmaskmovd'
> +.*:188: Error: register type mismatch for `vpmaskmovd'
> +.*:189: Error: register type mismatch for `vpmaskmovq'
> +.*:190: Error: register type mismatch for `vpmaskmovq'
> +.*:191: Error: register type mismatch for `vpmaskmovd'
> +.*:192: Error: register type mismatch for `vpmaskmovd'
> +.*:193: Error: register type mismatch for `vpmaskmovq'
> +.*:194: Error: register type mismatch for `vpmaskmovq'
> +.*:195: Error: register type mismatch for `vaesimc'
> +.*:196: Error: register type mismatch for `vaeskeygenassist'
> +.*:197: Error: register type mismatch for `vroundpd'
> +.*:198: Error: register type mismatch for `vroundps'
> +.*:199: Error: register type mismatch for `vroundsd'
> +.*:200: Error: register type mismatch for `vroundss'
> +.*:201: Error: register type mismatch for `vpcmpistri'
> +.*:202: Error: register type mismatch for `vpcmpistrm'
> +.*:203: Error: register type mismatch for `vpcmpeqb'
> +.*:204: Error: register type mismatch for `vpcmpeqw'
> +.*:205: Error: register type mismatch for `vpcmpeqd'
> +.*:206: Error: register type mismatch for `vpcmpeqq'
> +.*:207: Error: register type mismatch for `vpcmpgtb'
> +.*:208: Error: register type mismatch for `vpcmpgtw'
> +.*:209: Error: register type mismatch for `vpcmpgtd'
> +.*:210: Error: register type mismatch for `vpcmpgtq'
>  GAS LISTING .*
>  #...
> -[ 	]*1[ 	]+\# Check Illegal 64bit APX instructions
> +[ 	]*1[ 	]+\# Check illegal 64bit APX instructions
>  [ 	]*2[ 	]+\.text
>  [ 	]*3[ 	]+\.arch \.noapx_f
>  [ 	]*4[ 	]+test    \$0x7, %r17d
> diff --git a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
> index 5249b888046..cbac896fd28 100644
> --- a/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
> +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
> @@ -1,4 +1,4 @@
> -# Check Illegal 64bit APX instructions
> +# Check illegal 64bit APX instructions
>  	.text
>  	.arch .noapx_f
>  	test    $0x7, %r17d
> @@ -16,3 +16,195 @@
>  	xsaveopt64 (%r16, %rbx)
>  	xsavec (%r16, %rbx)
>  	xsavec64 (%r16, %rbx)
> +#SSE
> +	phaddw          (%r17),%xmm0
> +	phaddd          (%r17),%xmm0
> +	phaddsw         (%r17),%xmm0
> +	phsubw          (%r17),%xmm0
> +	pmaddubsw       (%r17),%xmm0
> +	pmulhrsw        (%r17),%xmm0
> +	pshufb          (%r17),%xmm0
> +	psignb          (%r17),%xmm0
> +	psignw          (%r17),%xmm0
> +	psignd          (%r17),%xmm0
> +	palignr $100,(%r17),%xmm6
> +	pabsb          (%r17),%xmm0
> +	pabsw          (%r17),%xmm0
> +	pabsd          (%r17),%xmm0
> +	blendpd $100,(%r18),%xmm6
> +	blendps $100,(%r18),%xmm6
> +	blendvpd %xmm0,(%r19),%xmm6
> +	blendvps %xmm0,(%r19),%xmm6
> +	blendvpd (%r19),%xmm6
> +	blendvps (%r19),%xmm6
> +	dppd $100,(%r20),%xmm6
> +	dpps $100,(%r20),%xmm6
> +	extractps $100,%xmm4,(%r21)
> +	extractps $100,%xmm4,%r21
> +	insertps $100,(%r21),%xmm6
> +	movntdqa (%r21),%xmm4
> +	mpsadbw $100,(%r21),%xmm6
> +	packusdw (%r21),%xmm6
> +	pblendvb %xmm0,(%r22),%xmm6
> +	pblendvb (%r22),%xmm6
> +	pblendw $100,(%r22),%xmm6
> +	pcmpeqq (%r22),%xmm6
> +	pextrb $100,%xmm4,(%r22)
> +	pextrw $100,%xmm4,(%r22)
> +	pextrb $100,%xmm4,%r22

Would be nice to stick to strict alphabetic sorting.

> +	pextrd $100,%xmm4,%r22d
> +	pextrd $100,%xmm4,(%r22)

pextrq?

> +	phminposuw (%r23),%xmm4
> +	pinsrb $100,%r23,%xmm4
> +	pinsrb $100,(%r23),%xmm4
> +	pinsrd $100, %r23d, %xmm4
> +	pinsrd $100,(%r23),%xmm4
> +	pinsrq $100, %r24, %xmm4
> +	pinsrq $100,(%r24),%xmm4
> +	pmaxsb (%r24),%xmm6
> +	pmaxsd (%r24),%xmm6
> +	pmaxud (%r24),%xmm6
> +	pmaxuw (%r24),%xmm6
> +	pminsb (%r24),%xmm6
> +	pminsd (%r24),%xmm6
> +	pminud (%r24),%xmm6
> +	pminuw (%r24),%xmm6
> +	pmovsxbw (%r24),%xmm4
> +	pmovsxbd (%r24),%xmm4
> +	pmovsxbq (%r24),%xmm4
> +	pmovsxwd (%r24),%xmm4
> +	pmovsxwq (%r24),%xmm4
> +	pmovsxdq (%r24),%xmm4
> +	pmovsxbw (%r24),%xmm4
> +	pmovzxbd (%r24),%xmm4
> +	pmovzxbq (%r24),%xmm4
> +	pmovzxwd (%r24),%xmm4
> +	pmovzxwq (%r24),%xmm4
> +	pmovzxdq (%r24),%xmm4
> +	pmuldq (%r24),%xmm4
> +	pmulld (%r24),%xmm4
> +	roundpd $100,(%r24),%xmm6
> +	roundps $100,(%r24),%xmm6
> +	roundsd $100,(%r24),%xmm6
> +	roundss $100,(%r24),%xmm6
> +	pcmpgtq (%r25),%xmm4
> +	pcmpestri $100,(%r25),%xmm6
> +	pcmpestrm $100,(%r25),%xmm6
> +	pcmpistri $100,(%r25),%xmm6
> +	pcmpistrm $100,(%r25),%xmm6

For these last five - again would be nice to stick to strict alphabetic sorting.
(I was almost going to as where pcmpeqq is.)

> +#AES
> +	aesdec (%r26),%xmm6
> +	aesdeclast (%r26),%xmm6
> +	aesenc (%r26),%xmm6
> +	aesenclast (%r26),%xmm6
> +	aesimc (%r26),%xmm6
> +	aeskeygenassist $100,(%r26),%xmm6
> +	pclmulqdq $100,(%r26),%xmm6
> +	pclmullqlqdq (%r26),%xmm6
> +	pclmulhqlqdq (%r26),%xmm6
> +	pclmullqhqdq (%r26),%xmm6
> +	pclmulhqhqdq (%r26),%xmm6
> +#GFNI
> +	gf2p8affineqb $100,(%r26),%xmm6
> +	gf2p8affineinvqb $100,(%r26),%xmm6
> +	gf2p8mulb (%r26),%xmm6
> +#VEX without evex
> +	vblendpd $7,(%r27),%xmm6,%xmm2
> +	vblendpd $7,(%r27),%ymm6,%ymm2
> +	vblendps $7,(%r27),%xmm6,%xmm2
> +	vblendps $7,(%r27),%ymm6,%ymm2
> +	vblendvpd %xmm4,(%r27),%xmm2,%xmm7
> +	vblendvpd %ymm4,(%r27),%ymm2,%ymm7
> +	vblendvps %xmm4,(%r27),%xmm2,%xmm7
> +	vblendvps %ymm4,(%r27),%ymm2,%ymm7
> +	vdppd $7,(%r27),%xmm6,%xmm2
> +	vdpps $7,(%r27),%xmm6,%xmm2
> +	vdpps $7,(%r27),%ymm6,%ymm2
> +	vhaddpd (%r27),%xmm6,%xmm5
> +	vhaddpd (%r27),%ymm6,%ymm5
> +	vhsubps (%r27),%xmm6,%xmm5
> +	vhsubps (%r27),%ymm6,%ymm5
> +	vlddqu (%r27),%xmm4
> +	vlddqu (%r27),%ymm4
> +	vldmxcsr (%r27)

Are the designers not intending to reconsider this (and vstmxcsr), getting
on par with {ld,st}tilecfg? Even more generally I wonder if things shouldn't
remain less inconsistent. After all most major opcodes haven't been re-used,
so adding (less-than-512-bit) EVEX equivalents would only seem reasonable to
me. I'll be really curious how this asymmetry is going to be dealt with in
gcc, in a way still permitting sane inline assembly use.

> +	vmaskmovpd (%r27),%xmm4,%xmm6
> +	vmaskmovpd %xmm4,%xmm6,(%r27)
> +	vmaskmovps (%r27),%xmm4,%xmm6
> +	vmaskmovps %xmm4,%xmm6,(%r27)
> +	vmaskmovpd (%r27),%ymm4,%ymm6
> +	vmaskmovpd %ymm4,%ymm6,(%r27)
> +	vmaskmovps (%r27),%ymm4,%ymm6
> +	vmaskmovps %ymm4,%ymm6,(%r27)	
> +	vmovmskpd %xmm4,%r27d
> +	vmovmskpd %xmm8,%r27d
> +	vmovmskps %xmm4,%r27d
> +	vmovmskps %ymm8,%r27d
> +	vpblendvb %xmm4,(%r27),%xmm2,%xmm7
> +	vpblendvb %ymm4,(%r27),%ymm2,%ymm7
> +	vpblendw $7,(%r27),%xmm6,%xmm2
> +	vpblendw $7,(%r27),%ymm6,%ymm2
> +	vpcmpestri $7,(%r27),%xmm6
> +	vpcmpestrm $7,(%r27),%xmm6
> +	vperm2f128 $7,(%r27),%ymm6,%ymm2
> +	vphaddd (%r27),%xmm6,%xmm7
> +	vphaddsw (%r27),%xmm6,%xmm7
> +	vphaddw (%r27),%xmm6,%xmm7
> +	vphsubd (%r27),%xmm6,%xmm7
> +	vphsubsw (%r27),%xmm6,%xmm7
> +	vphsubw (%r27),%xmm6,%xmm7
> +	vphaddd (%r27),%ymm6,%ymm7
> +	vphaddsw (%r27),%ymm6,%ymm7
> +	vphaddw (%r27),%ymm6,%ymm7
> +	vphsubd (%r27),%ymm6,%ymm7
> +	vphsubsw (%r27),%ymm6,%ymm7
> +	vphsubw (%r27),%ymm6,%ymm7
> +	vphminposuw (%r27),%xmm6
> +	vpmovmskb %xmm4,%r27
> +	vpmovmskb %ymm4,%r27d
> +	vpsignb (%r27),%xmm6,%xmm7
> +	vpsignw (%r27),%xmm6,%xmm7
> +	vpsignd (%r27),%xmm6,%xmm7
> +	vpsignb (%r27),%xmm6,%xmm7
> +	vpsignw (%r27),%xmm6,%xmm7
> +	vpsignd (%r27),%xmm6,%xmm7
> +	vptest (%r27),%xmm6
> +	vptest (%r27),%ymm6
> +	vrcpps (%r27),%xmm6
> +	vrcpps (%r27),%ymm6
> +	vrcpss (%r27),%xmm6,%xmm6
> +	vrsqrtps (%r27),%xmm6
> +	vrsqrtps (%r27),%ymm6
> +	vrsqrtss (%r27),%xmm6,%xmm6
> +	vstmxcsr (%r27)
> +	vtestps (%r27),%xmm6
> +	vtestps (%r27),%ymm6
> +	vtestpd (%r27),%xmm6
> +	vtestps (%r27),%ymm6
> +	vtestpd (%r27),%ymm6
> +	vpblendd $7,(%r27),%xmm6,%xmm2
> +	vpblendd $7,(%r27),%ymm6,%ymm2
> +	vperm2i128 $7,(%r27),%ymm6,%ymm2
> +	vpmaskmovd (%r27),%xmm4,%xmm6
> +	vpmaskmovd %xmm4,%xmm6,(%r27)
> +	vpmaskmovq (%r27),%xmm4,%xmm6
> +	vpmaskmovq %xmm4,%xmm6,(%r27)
> +	vpmaskmovd (%r27),%ymm4,%ymm6
> +	vpmaskmovd %ymm4,%ymm6,(%r27)
> +	vpmaskmovq (%r27),%ymm4,%ymm6
> +	vpmaskmovq %ymm4,%ymm6,(%r27)
> +	vaesimc (%r27), %xmm3
> +	vaeskeygenassist $7,(%r27),%xmm3
> +	vroundpd $100,(%r24),%xmm6
> +	vroundps $100,(%r24),%xmm6
> +	vroundsd $100,(%r24),%xmm6,%xmm3
> +	vroundss $100,(%r24),%xmm6,%xmm3

For these I wonder if they shouldn't be accepted (with in-range immediate)
and converted to vrndscale*. Imo the spec could even mandate (or at least
suggest) this.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
> @@ -0,0 +1,18 @@
> +# Check illegal 64bit APX EVEX promoted instructions
> +	.text
> +	.arch .apx_f

This doesn't have any effect (on this test), does it?

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s
> @@ -0,0 +1,25 @@
> +# Check 64bit old evex instructions use gpr32 with evex prefix encoding
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +## MRMDestMem
> +         vextractf32x4	$1, %zmm0, (%r16,%r17)
> +## MRMSrcMem
> +         vbroadcasti32x4	(%r16,%r17), %zmm0
> +## MRM0m
> +         vprorq	$0, (%r16,%r17), %zmm0
> +## MRM1m
> +         vprolq	$0, (%r16,%r17), %zmm0
> +## MRM2m
> +         vpsrlq	$0, (%r16,%r17), %zmm0
> +## MRM3m
> +         vpsrldq	$0, (%r16,%r17), %zmm0
> +## MRM4m
> +         vpsraq	$0, (%r16,%r17), %zmm0
> +## MRM6m
> +         vpsllq	$0, (%r16,%r17), %zmm0
> +## MRM7m
> +         vpslldq	$0, (%r16,%r17), %zmm0
> +## MRMDestReg
> +         vextractps	$1, %xmm16, %r16d

What is the purpose of this test? Using all the same base and index
registers isn't really covering very much. I'm also missing a GPR-is-
source case (e.g. vpinsr*). And finally (I think I commented on this
elsewhere already) can the comments please be made meaningful, without
needing to guess what the acronyms are to be decoded to?

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
> @@ -0,0 +1,1464 @@
> +# Check 64bit APX_F EVEX-Promoted instructions.
> +
> +	.text
> +_start:
> +	aadd	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	aadd	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	aand	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	aand	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adc	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
> +	adc	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
> +	adc	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
> +	adc	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
> +	adcb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adcw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adcl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adcq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adcw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adcl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adcq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX

If this 2nd triplet of adc* is useful, why no adcb? Also, like above:
- more variation of register use would imo be better (there's no egpr
  index register here),
- comments want to be useful, or be dropped.

Speaking of comments, ...

> +	adc	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
> +	adc	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adc	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
> +	adc	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adc	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adc	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
> +	adc	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adc	%r31,%r15	 #APX_F OPC_EVEX_EVEX
> +	adc	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> +	adc	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
> +	adc	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
> +	adc	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
> +	adc	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
> +	adc	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX

... the entire set of adc here doesn't encode as EVEX, but as REX2 (i.e.
the comments are outright wrong). As a result the EVEX encodings added
to the opcode table in the previous patch aren't being tested at all.

> --- a/gas/testsuite/gas/i386/x86-64-evex.d
> +++ b/gas/testsuite/gas/i386/x86-64-evex.d
> @@ -17,6 +17,6 @@ Disassembly of section .text:
>   +[a-f0-9]+:	62 f1 d6 38 7b f0    	vcvtusi2ss %rax,\{rd-sae\},%xmm5,%xmm6
>   +[a-f0-9]+:	62 f1 57 38 7b f0    	vcvtusi2sd %eax,\{rd-bad\},%xmm5,%xmm6
>   +[a-f0-9]+:	62 f1 d7 38 7b f0    	vcvtusi2sd %rax,\{rd-sae\},%xmm5,%xmm6
> - +[a-f0-9]+:	62 e1 7e 08 2d c0    	vcvtss2si %xmm0,\(bad\)
> + +[a-f0-9]+:	62 e1 7e 08 2d c0    	vcvtss2si %xmm0,%r16d
>   +[a-f0-9]+:	62 e1 7c 08 c2 c0 00 	vcmpeqps %xmm0,%xmm0,\(bad\)

If the line that's now disassembling okay cannot be replaced by a suitable
equivalent, it should be dropped rather than be adjusted. Furthermore such
an adjustment needs to be done right in the patch leading to the changed
output, or else things end up non-bisectable. (New tests are okay to add
in a separate patch.)

> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.l
> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.l
> @@ -1,29 +1,30 @@
>  .*: Assembler messages:
> -.*:4: Error: .*
>  .*:5: Error: .*
>  .*:6: Error: .*
>  .*:7: Error: .*
>  .*:8: Error: .*
> -.*:11: Error: .*
> +.*:9: Error: .*
>  .*:12: Error: .*
>  .*:13: Error: .*
>  .*:14: Error: .*
>  .*:15: Error: .*
> +.*:16: Error: .*
>  GAS LISTING .*
>  
>  
>  [ 	]*1[ 	]+\# Check illegal movbe in 64bit mode\.
>  [ 	]*2[ 	]+\.text
> -[ 	]*3[ 	]+foo:
> -[ 	]*4[ 	]+movbe	\(%rcx\),%bl
> -[ 	]*5[ 	]+movbe	%ecx,%ebx
> -[ 	]*6[ 	]+movbe	%bx,%rcx
> -[ 	]*7[ 	]+movbe	%rbx,%rcx
> -[ 	]*8[ 	]+movbe	%bl,\(%rcx\)
> -[ 	]*9[ 	]+
> -[ 	]*10[ 	]+\.intel_syntax noprefix
> -[ 	]*11[ 	]+movbe bl, byte ptr \[rcx\]
> -[ 	]*12[ 	]+movbe ebx, ecx
> -[ 	]*13[ 	]+movbe rcx, bx
> -[ 	]*14[ 	]+movbe rcx, rbx
> -[ 	]*15[ 	]+movbe byte ptr \[rcx\], bl
> +[ 	]*3[ 	]+\.arch \.noapx_f
> +[ 	]*4[ 	]+foo:
> +[ 	]*5[ 	]+movbe	\(%rcx\),%bl
> +[ 	]*6[ 	]+movbe	%ecx,%ebx
> +[ 	]*7[ 	]+movbe	%bx,%rcx
> +[ 	]*8[ 	]+movbe	%rbx,%rcx
> +[ 	]*9[ 	]+movbe	%bl,\(%rcx\)
> +[ 	]*10[ 	]+
> +[ 	]*11[ 	]+\.intel_syntax noprefix
> +[ 	]*12[ 	]+movbe bl, byte ptr \[rcx\]
> +[ 	]*13[ 	]+movbe ebx, ecx
> +[ 	]*14[ 	]+movbe rcx, bx
> +[ 	]*15[ 	]+movbe rcx, rbx
> +[ 	]*16[ 	]+movbe byte ptr \[rcx\], bl
> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> @@ -1,5 +1,6 @@
>  # Check illegal movbe in 64bit mode.
>  	.text
> +	.arch .noapx_f
>  foo:
>  	movbe	(%rcx),%bl
>  	movbe	%ecx,%ebx

I don't understand the need for this addition (and hence for the need
to change the test's expecations). Like was mentioned on the original
AVX10 series, tests like this shall not need modification, or else it
indicates people's code also may need ".arch .noapx_f" additions, which
I'm sure you agree may not be required. Finally, if testcase expecations
like the above would be needed anywhere, please generalize them such that
a similar mere addition of a line doesn't require the entire test to be
touched. Here this means that while for the diagnostics you of course
want exact line number matches, for the actual listing line numbers don't
don't need matching individually.

Jan

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

* Re: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-09-19 15:25 ` [PATCH 3/8] Add tests for " Cui, Lili
  2023-09-27 13:11   ` Jan Beulich
@ 2023-09-27 13:19   ` Jan Beulich
  1 sibling, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-09-27 13:19 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> gas/ChangeLog:
> 
> 	* testsuite/gas/i386/x86-64-apx-egpr-inval.l: Add some
> 	insn don't support gpr32
> 	* testsuite/gas/i386/x86-64-apx-egpr-inval.s: Ditto.
> 	* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s: Ditto.
> 	* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s: Ditto.
> 	* testsuite/gas/i386/x86-64.exp: Add x86-64-apx-evex-egpr,
> 	x86-64-apx-evex-legacy and x86-64-apx-evex-vex.
> 	* testsuite/gas/i386/x86-64-apx-evex-egpr.d: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-egpr.s: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-promoted-intrel.d: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-promoted.d: New test.
> 	* testsuite/gas/i386/x86-64-apx-evex-promoted.s: New test.

One further remark: It may not be here yet (albeit the earlier patch adds
related templates), but throughout the series whenever templates are added
which are ambiguous as to operand size (i.e. in the absence of a suitably
sizing register operand), the noreg64 testcase also wants extending. It is
intended to be an exhaustive set of affected insns (if you spot omissions,
I'm all ears).

Jan

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

* Re: [PATCH 4/8] Support APX NDD
  2023-09-19 15:25 ` [PATCH 4/8] Support APX NDD Cui, Lili
@ 2023-09-27 14:44   ` Jan Beulich
  2023-10-22 14:05     ` Cui, Lili
  2023-09-28  7:57   ` Jan Beulich
  1 sibling, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-27 14:44 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, konglin1, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> From: konglin1 <lingling.kong@intel.com>
> 
> opcodes/ChangeLog:
> 
> 	* opcodes/i386-dis-evex-prefix.h: Add NDD decode for adox/adcx.
> 	* opcodes/i386-dis-evex-reg.h: Handle for REG_EVEX_MAP4_80,
> 	REG_EVEX_MAP4_81, REG_EVEX_MAP4_83, REG_EVEX_MAP4_C0,
> 	REG_EVEX_MAP4_C1, REG_EVEX_MAP4_D0, REG_EVEX_MAP4_D1,
> 	REG_EVEX_MAP4_D2, REG_EVEX_MAP4_D3, REG_EVEX_MAP4_F6,
> 	REG_EVEX_MAP4_F7, REG_EVEX_MAP4_FE, REG_EVEX_MAP4_FF.
> 	* opcodes/i386-dis-evex.h: Add NDD insn.
> 	* opcodes/i386-dis.c (VexGb): Add new define.
> 	(VexGv): Ditto.
> 	(get_valid_dis386): Change for NDD decode.
> 	(print_insn): Ditto.
> 	(print_register): Ditto.
> 	(intel_operand_size): Ditto.
> 	(OP_E_memory): Ditto.
> 	(OP_VEX): Ditto.
> 	* opcodes/i386-opc.h (Opcode_APX_NDDD): New macro.
> 	* opcodes/i386-opc.tbl: Add APX NDD instructions.
> 	* opcodes/i386-tbl.h: Regenerated.
> 
> gas/ChangeLog:
> 
> 	* gas/config/tc-i386.c (is_any_apx_encoding): Add legacy insn
> 	promote to SPACE_EVEXMAP4.
> 	(build_legacy_insns_with_apx_encoding): Add ndd bit encode.
> 	(md_assemble): Change for ndd encode.
> 	(process_operands): Ditto.
> 	(build_modrm_byte): Ditto.
> 	(operand_size_match):
> 	Support APX NDD that the number of operands is 3.
> 	(match_template): Support swap the first two operands for
> 	APX NDD that the number of operands is 3.
> 	* gas/testsuite/gas/i386/x86-64.exp: Add x86-64-apx-ndd.
> 	* gas/testsuite/gas/i386/x86-64-apx-ndd.d: New test.
> 	* gas/testsuite/gas/i386/x86-64-apx-ndd.s: Ditto.
> 	* testsuite/gas/i386/x86-64-pseudos.d: Add test.
> 	* testsuite/gas/i386/x86-64-pseudos.s: Ditto.
> ---
>  gas/config/tc-i386.c                    |  80 ++++++++----
>  gas/testsuite/gas/i386/x86-64-apx-ndd.d | 165 ++++++++++++++++++++++++
>  gas/testsuite/gas/i386/x86-64-apx-ndd.s | 156 ++++++++++++++++++++++
>  gas/testsuite/gas/i386/x86-64-pseudos.d |  42 ++++++
>  gas/testsuite/gas/i386/x86-64-pseudos.s |  43 ++++++
>  gas/testsuite/gas/i386/x86-64.exp       |   1 +
>  opcodes/i386-dis-evex-prefix.h          |   4 +-
>  opcodes/i386-dis-evex-reg.h             | 123 ++++++++++++++++++
>  opcodes/i386-dis-evex.h                 | 124 +++++++++---------
>  opcodes/i386-dis.c                      |  47 ++++++-
>  opcodes/i386-opc.h                      |   1 +
>  opcodes/i386-opc.tbl                    |  67 ++++++++++
>  12 files changed, 762 insertions(+), 91 deletions(-)
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.d
>  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.s
> 
> diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
> index 48916bc3846..381e389bb04 100644
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -2261,8 +2261,9 @@ operand_size_match (const insn_template *t)
>        unsigned int given = i.operands - j - 1;
>  
>        /* For FMA4 and XOP insns VEX.W controls just the first two
> -	 register operands.  */
> -      if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP))
> +	 register operands. And APX insns just swap the first operands.  */
> +      if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP)
> +	  || (is_cpu (t,CpuAPX_F) && i.operands == 3))
>  	given = j < 2 ? 1 - j : j;

In the comment, how about "And APX_F insns just swap the two source operands,
with the 3rd one being the destination"?

Is the "i.operands == 3" part of the condition really needed? I.e. are there
any APX_F insns which can make it here but must not take this path? Afaict
2-operand insns are fine to go here, and more-than-3-operand insns don't
come with the D attribute.

Also (nit) there's a missing blank after the comma.

> @@ -3876,6 +3877,7 @@ is_any_apx_encoding (void)
>  {
>    return i.rex2 
>      || i.rex2_encoding
> +    || i.tm.opcode_space == SPACE_EVEXMAP4
>      || (i.vex.register_specifier
>  	&& i.vex.register_specifier->reg_flags & RegRex2);
>  }
> @@ -4204,6 +4206,10 @@ build_legacy_insns_with_apx_encoding (void)
>      }
>  
>    build_evex_insns_with_extend_evex_prefix ();
> +
> +  /* Encode the NDD bit.  */
> +  if (i.vex.register_specifier)
> +    i.vex.bytes[3] |= 0x10;
>  }
>  
>  static void
> @@ -7383,26 +7389,31 @@ match_template (char mnem_suffix)
>  	  overlap1 = operand_type_and (operand_types[0], operand_types[1]);
>  	  if (t->opcode_modifier.d && i.reg_operands == i.operands
>  	      && !operand_type_all_zero (&overlap1))
> -	    switch (i.dir_encoding)
> -	      {
> -	      case dir_encoding_load:
> -		if (operand_type_check (operand_types[i.operands - 1], anymem)
> -		    || t->opcode_modifier.regmem)
> -		  goto check_reverse;
> -		break;
> +	    {
> +	      int isMemOperand = (t->opcode_modifier.vexvvvv
> +				  && t->opcode_space == SPACE_EVEXMAP4)
> +				  ? i.operands - 2 : i.operands - 1;

"is" in the variable name is properly misleading. What you're determining
here is which operand you want to _check_ for being the memory operand.

As to the condition, the two side of && may want swapping: In such a
condition it is generally desirable to have the more restricting part
first. Plus this may be more neat to express without ?: anyway:

i.operands - 1 - (t->opcode_space == SPACE_EVEXMAP4 && t->opcode_modifier.vexvvvv)

(suitably line wrapped of course).

> +	      switch (i.dir_encoding)
> +		{
> +		case dir_encoding_load:
> +		  if (operand_type_check (operand_types[isMemOperand], anymem)
> +		      || t->opcode_modifier.regmem)
> +		    goto check_reverse;
> +		  break;
>  
> -	      case dir_encoding_store:
> -		if (!operand_type_check (operand_types[i.operands - 1], anymem)
> -		    && !t->opcode_modifier.regmem)
> -		  goto check_reverse;
> -		break;
> +		case dir_encoding_store:
> +		  if (!operand_type_check (operand_types[isMemOperand], anymem)
> +		      && !t->opcode_modifier.regmem)
> +		    goto check_reverse;
> +		  break;
>  
> -	      case dir_encoding_swap:
> -		goto check_reverse;
> +		case dir_encoding_swap:
> +		  goto check_reverse;
>  
> -	      case dir_encoding_default:
> -		break;
> -	      }
> +		case dir_encoding_default:
> +		  break;
> +		}
> +	    }
>  	  /* If we want store form, we skip the current load.  */
>  	  if ((i.dir_encoding == dir_encoding_store
>  	       || i.dir_encoding == dir_encoding_swap)
> @@ -7432,11 +7443,13 @@ match_template (char mnem_suffix)
>  		continue;
>  	      /* Try reversing direction of operands.  */
>  	      j = is_cpu (t, CpuFMA4)
> -		  || is_cpu (t, CpuXOP) ? 1 : i.operands - 1;
> +		  || is_cpu (t, CpuXOP)
> +		  || is_cpu (t, CpuAPX_F) ? 1 : i.operands - 1;
>  	      overlap0 = operand_type_and (i.types[0], operand_types[j]);
>  	      overlap1 = operand_type_and (i.types[j], operand_types[0]);
>  	      overlap2 = operand_type_and (i.types[1], operand_types[1]);
> -	      gas_assert (t->operands != 3 || !check_register);
> +	      gas_assert (t->operands != 3 || !check_register
> +			  || is_cpu (t,CpuAPX_F));

Nit: Missing blank again.

> @@ -7471,6 +7484,12 @@ match_template (char mnem_suffix)
>  		  found_reverse_match = Opcode_VexW;
>  		  goto check_operands_345;
>  		}
> +	      else if (is_cpu (t,CpuAPX_F)
> +		       && i.operands == 3)
> +		{
> +		  found_reverse_match = Opcode_APX_NDDD;
> +		  goto check_operands_345;
> +		}
>  	      else if (t->opcode_space != SPACE_BASE
>  		       && (t->opcode_space != SPACE_0F
>  			   /* MOV to/from CR/DR/TR, as an exception, follow
> @@ -7636,6 +7655,15 @@ match_template (char mnem_suffix)
>  	 flipping VEX.W.  */
>        i.tm.opcode_modifier.vexw ^= VEXW0 ^ VEXW1;
>  
> +      j = i.tm.operand_types[0].bitfield.imm8;
> +      i.tm.operand_types[j] = operand_types[j + 1];
> +      i.tm.operand_types[j + 1] = operand_types[j];
> +      break;

I'm not overly happy to see this code getting duplicated. Are there any
encodings at all which have D and and immediate operand? I don't think
so, in which case this at least wants simplifying. But read on.

> +    case Opcode_APX_NDDD:
> +      /* Only the first two register operands need reversing.  */
> +      i.tm.base_opcode ^= 0x2;

I think you mean Opcode_D here?

>        j = i.tm.operand_types[0].bitfield.imm8;
>        i.tm.operand_types[j] = operand_types[j + 1];
>        i.tm.operand_types[j + 1] = operand_types[j];

Taking both remarks together, do we need Opcode_APX_NDDD at all? Can't
you use the ordinary Opcode_D, with

    default:
      /* If we found a reverse match we must alter the opcode direction
	 bit and clear/flip the regmem modifier one.  found_reverse_match
	 holds bits to change (different for int & float insns).  */

      i.tm.base_opcode ^= found_reverse_match;

      if (i.tm.opcode_space == SPACE_EVEXMAP4 && i.operands == 3)
        goto swap_first_2;
    ...
    swap_first_2:
      j = i.tm.operand_types[0].bitfield.imm8;
      i.tm.operand_types[j] = operand_types[j + 1];
      i.tm.operand_types[j + 1] = operand_types[j];
      break;

? (I'm not convinced the i.operands == 3 part of the condition is needed;
if at all possible it wants omitting.)

> @@ -8462,8 +8490,8 @@ process_operands (void)
>    const reg_entry *default_seg = NULL;
>  
>    /* We only need to check those implicit registers for instructions
> -     with 3 operands or less.  */
> -  if (i.operands <= 3)
> +     with 4 operands or less.  */
> +  if (i.operands <= 4)
>      for (unsigned int j = 0; j < i.operands; j++)
>        if (i.types[j].bitfield.instance != InstanceNone)
>  	i.reg_operands--;

How useful is it to keep the outer if() when 4-operand insns now also
need checking? There are extremely few 5-operand ones ...

> @@ -8825,6 +8853,9 @@ build_modrm_byte (void)
>        break;
>    if (v >= dest)
>      v = ~0;
> +  if (i.tm.opcode_space == SPACE_EVEXMAP4
> +      && i.tm.opcode_modifier.vexvvvv)
> +    v = dest;
>    if (i.tm.extension_opcode != None)
>      {
>        if (dest != source)
> @@ -9088,6 +9119,9 @@ build_modrm_byte (void)
>        set_rex_vrex (i.op[op].regs, REX_B, false);
>  	}
>  
> +      if (i.tm.opcode_space == SPACE_EVEXMAP4
> +	  && i.tm.opcode_modifier.vexvvvv)
> +	dest--;
>        if (op == dest)
>  	dest = ~0;
>        if (op == source)

These two changes are at the very least problematic with .insn, whose
behavior may not change. I'd also prefer if we could get away with just
one change to the function. Did you consider alternatives? We could re-
widen VexVVVV, such that the value 2 indicates that the destination is
encoded there. That then also has no chance of conflicting with .insn.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
> @@ -0,0 +1,156 @@
> +# Check 64bit APX NDD instructions with evex prefix encoding
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +inc    %rax,%rbx
> +inc    %r31,%r8
> +inc    %r31,%r16
> +add    %r31b,%r8b,%r16b
> +addb    %r31b,%r8b,%r16b
> +add    %r31,%r8,%r16
> +addq    %r31,%r8,%r16
> +add    %r31d,%r8d,%r16d
> +addl    %r31d,%r8d,%r16d
> +add    %r31w,%r8w,%r16w
> +addw    %r31w,%r8w,%r16w
> +{store} add    %r31,%r8,%r16
> +{load}  add    %r31,%r8,%r16
> +add    %r31,(%r8),%r16
> +add    (%r31),%r8,%r16
> +add    0x9090(%r31,%r16,1),%r8,%r16
> +add    %r31,(%r8,%r16,8),%r16
> +add    $0x34,%r13b,%r17b
> +addl   $0x11,(%r19,%rax,4),%r20d
> +add    $0x1234,%ax,%r30w
> +add    $0x12344433,%r15,%r16
> +addq   $0x12344433,(%r15,%rcx,4),%r16
> +add    $0xfffffffff4332211,%rax,%r8
> +dec    %rax,%r17
> +decb   (%r31,%r12,1),%r8b
> +not    %rax,%r17
> +notb   (%r31,%r12,1),%r8b
> +neg    %rax,%r17
> +negb   (%r31,%r12,1),%r8b
> +sub    %r15b,%r17b,%r18b
> +sub    %r15d,(%r8),%r18d
> +sub    (%r15,%rax,1),%r16b,%r8b
> +sub    (%r15,%rax,1),%r16w,%r8w
> +subl   $0x11,(%r19,%rax,4),%r20d
> +sub    $0x1234,%ax,%r30w
> +sbb    %r15b,%r17b,%r18b
> +sbb    %r15d,(%r8),%r18d
> +sbb    (%r15,%rax,1),%r16b,%r8b
> +sbb    (%r15,%rax,1),%r16w,%r8w
> +sbbl   $0x11,(%r19,%rax,4),%r20d
> +sbb    $0x1234,%ax,%r30w
> +adc    %r15b,%r17b,%r18b
> +adc    %r15d,(%r8),%r18d
> +adc    (%r15,%rax,1),%r16b,%r8b
> +adc    (%r15,%rax,1),%r16w,%r8w
> +adcl   $0x11,(%r19,%rax,4),%r20d
> +adc    $0x1234,%ax,%r30w
> +or     %r15b,%r17b,%r18b
> +or     %r15d,(%r8),%r18d
> +or     (%r15,%rax,1),%r16b,%r8b
> +or     (%r15,%rax,1),%r16w,%r8w
> +orl    $0x11,(%r19,%rax,4),%r20d
> +or     $0x1234,%ax,%r30w
> +xor    %r15b,%r17b,%r18b
> +xor    %r15d,(%r8),%r18d
> +xor    (%r15,%rax,1),%r16b,%r8b
> +xor    (%r15,%rax,1),%r16w,%r8w
> +xorl   $0x11,(%r19,%rax,4),%r20d
> +xor    $0x1234,%ax,%r30w
> +and    %r15b,%r17b,%r18b
> +and    %r15d,(%r8),%r18d
> +and    (%r15,%rax,1),%r16b,%r8b
> +and    (%r15,%rax,1),%r16w,%r8w
> +andl   $0x11,(%r19,%rax,4),%r20d
> +and    $0x1234,%ax,%r30w
> +rorb   (%rax),%r31b
> +ror    $0x2,%r12b,%r31b
> +rorl   $0x2,(%rax),%r31d
> +rorw   (%rax),%r31w
> +ror    %cl,%r16b,%r8b
> +rorw   %cl,(%r19,%rax,4),%r31w
> +rolb   (%rax),%r31b
> +rol    $0x2,%r12b,%r31b
> +roll   $0x2,(%rax),%r31d
> +rolw   (%rax),%r31w
> +rol    %cl,%r16b,%r8b
> +rolw   %cl,(%r19,%rax,4),%r31w
> +rcrb   (%rax),%r31b
> +rcr    $0x2,%r12b,%r31b
> +rcrl   $0x2,(%rax),%r31d
> +rcrw   (%rax),%r31w
> +rcr    %cl,%r16b,%r8b
> +rcrw   %cl,(%r19,%rax,4),%r31w
> +rclb   (%rax),%r31b
> +rcl    $0x2,%r12b,%r31b
> +rcll   $0x2,(%rax),%r31d
> +rclw   (%rax),%r31w
> +rcl    %cl,%r16b,%r8b
> +rclw   %cl,(%r19,%rax,4),%r31w
> +shlb   (%rax),%r31b
> +shl    $0x2,%r12b,%r31b
> +shll   $0x2,(%rax),%r31d
> +shlw   (%rax),%r31w
> +shl    %cl,%r16b,%r8b
> +shlw   %cl,(%r19,%rax,4),%r31w
> +sarb   (%rax),%r31b
> +sar    $0x2,%r12b,%r31b
> +sarl   $0x2,(%rax),%r31d
> +sarw   (%rax),%r31w
> +sar    %cl,%r16b,%r8b
> +sarw   %cl,(%r19,%rax,4),%r31w
> +shlb   (%rax),%r31b
> +shl    $0x2,%r12b,%r31b
> +shll   $0x2,(%rax),%r31d
> +shlw   (%rax),%r31w
> +shl    %cl,%r16b,%r8b
> +shlw   %cl,(%r19,%rax,4),%r31w
> +shrb   (%rax),%r31b
> +shr    $0x2,%r12b,%r31b
> +shrl   $0x2,(%rax),%r31d
> +shrw   (%rax),%r31w
> +shr    %cl,%r16b,%r8b
> +shrw   %cl,(%r19,%rax,4),%r31w
> +shld   $0x1,%r12,(%rax),%r31
> +shld   $0x2,%r8w,%r12w,%r31w
> +shld   $0x2,%r15d,(%rax),%r31d
> +shld   %cl,%r9w,(%rax),%r31w
> +shld   %cl,%r12,%r16,%r8
> +shld   %cl,%r13w,(%r19,%rax,4),%r31w
> +shrd   $0x1,%r12,(%rax),%r31
> +shrd   $0x2,%r8w,%r12w,%r31w
> +shrd   $0x2,%r15d,(%rax),%r31d
> +shrd   %cl,%r9w,(%rax),%r31w
> +shrd   %cl,%r12,%r16,%r8
> +shrd   %cl,%r13w,(%r19,%rax,4),%r31w
> +adcx   %r15d,%r8d,%r18d
> +adcx   (%r15,%r31,1),%r8d,%r18d
> +adcx   (%r15,%r31,1),%r8
> +adox   %r15d,%r8d,%r18d
> +adox   (%r15,%r31,1),%r8d,%r18d
> +adox   (%r15,%r31,1),%r8
> +cmovo  0x90909090(%eax),%edx,%r8d
> +cmovno 0x90909090(%eax),%edx,%r8d
> +cmovb  0x90909090(%eax),%edx,%r8d
> +cmovae 0x90909090(%eax),%edx,%r8d
> +cmove  0x90909090(%eax),%edx,%r8d
> +cmovne 0x90909090(%eax),%edx,%r8d
> +cmovbe 0x90909090(%eax),%edx,%r8d
> +cmova  0x90909090(%eax),%edx,%r8d
> +cmovs  0x90909090(%eax),%edx,%r8d
> +cmovns 0x90909090(%eax),%edx,%r8d
> +cmovp  0x90909090(%eax),%edx,%r8d
> +cmovnp 0x90909090(%eax),%edx,%r8d
> +cmovl  0x90909090(%eax),%edx,%r8d
> +cmovge 0x90909090(%eax),%edx,%r8d
> +cmovle 0x90909090(%eax),%edx,%r8d
> +cmovg  0x90909090(%eax),%edx,%r8d
> +imul   0x90909(%eax),%edx,%r8d
> +imul   0x909(%rax,%r31,8),%rdx,%r25

What about imul by immediate? The present spec is quite unclear there:
The insn page says {ND=ZU} and the table says 0/1 in the ND column.

> +.byte 0x62,0xf4,0xfc,0x08,0xff,0xc0  #inc %rax
> +.byte 0x62,0xf4,0xec,0x08,0xff,0xc0  #bad

As before, please avoid .byte whenever possible. And please have a more
detailed comment as to what is being encoded, when .byte cannot be
avoided. Plus, if at all possible, have "bad" tests live in separate
testcases from "good" ones.

> --- a/opcodes/i386-dis-evex-prefix.h
> +++ b/opcodes/i386-dis-evex-prefix.h

Once again I'll reply to disassembler changes separately.

> --- a/opcodes/i386-opc.h
> +++ b/opcodes/i386-opc.h
> @@ -960,6 +960,7 @@ typedef struct insn_template
>  /* The next value is arbitrary, as long as it's non-zero and distinct
>     from all other values above.  */
>  #define Opcode_VexW	0xf /* Operand order controlled by VEX.W. */
> +#define Opcode_APX_NDDD	0x11 /* Direction bit for APX NDD insns. */

The comment talks of a single bit, but the value has two bits set.
Plus in the code you also don't use this constant as described by the
comment. Aiui like for Opcode_VexW the value is really arbitrary, just
as long as it's different from others. In which case I'd rather
suggest using e.g. 0xe (if, unlike suggested above, Opcode_D cannot be
re-used).

Also I don't think there's a need for three D-s in the name.

> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl

Comments given on the earlier patch apply here (and elsewhere) as well.

Jan

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

* RE: [PATCH 1/8] Support APX GPR32 with rex2 prefix
  2023-09-21 15:27   ` Jan Beulich
@ 2023-09-27 15:57     ` Cui, Lili
  0 siblings, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-09-27 15:57 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils



> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Thursday, September 21, 2023 11:28 PM
> To: Cui, Lili <lili.cui@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; Kong, Lingling
> <lingling.kong@intel.com>; binutils@sourceware.org
> Subject: Re: [PATCH 1/8] Support APX GPR32 with rex2 prefix
> 
> On 19.09.2023 17:25, Cui, Lili wrote:
> > --- a/gas/config/tc-i386.c
> > +++ b/gas/config/tc-i386.c
> > @@ -353,6 +354,7 @@ struct _i386_insn
> >      modrm_byte rm;
> >      rex_byte rex;
> >      rex_byte vrex;
> > +    rex_byte rex2; // for extends gpr32 r16-r31
> 
> Malformed comment. I'm not convinced one needs to be here in the first place.
> 

Removed the comment. 

{
> > @@ -426,6 +433,9 @@ struct _i386_insn
> >      /* Prefer the REX byte in encoding.  */
> >      bool rex_encoding;
> >
> > +    /* Prefer the REX2 byte in encoding.  */
> > +    bool rex2_encoding;
> 
> What is "the REX2 byte"? There are two bytes involved there ...
> 
Changed it to " Prefer the REX2 prefix in encoding "

> > @@ -1694,6 +1705,7 @@ is_cpu (const insn_template *t, enum i386_cpu
> cpu)
> >      case CpuHLE:      return t->cpu.bitfield.cpuhle;
> >      case CpuAVX512F:  return t->cpu.bitfield.cpuavx512f;
> >      case CpuAVX512VL: return t->cpu.bitfield.cpuavx512vl;
> > +    case CpuAPX_F:      return t->cpu.bitfield.cpuapx_f;
> 
> Nit: Please get padding right.

Done.

> 
> > +static INLINE bool
> > +is_any_apx_encoding (void)
> > +{
> > +  return i.rex2 || i.rex2_encoding;
> > +}
> > +
> > +static INLINE bool
> > +is_any_apx_rex2_encoding (void)
> > +{
> > +  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding; }
> 
> There's no particularly good place to make this remark: I was expecting
> REX2 handling to rather follow REX handling, not VEX/EVEX one. I certainly
> consider at least the first helper's name misleading (APX also includes various
> EVEX encodings, after all), and I also don't really like you (ab)using i.vex.length
> for REX2 handling.
> 

Good advice, I put build_rex2_prefix just before REX handling and removed the complex judgments. Also removed i.vex.length, it seems redundant here.
And for the patch 2/8 (Support APX GPR32 with extend evex prefix),  it can follow the VEX/EVEX handling.

-  if (i.rex != 0)
+  if (i.rex2 != 0 || i.rex2_encoding)
+    {
+      build_rex2_prefix ();
+      /* The individual REX.RXBW bits got consumed.  */
+      i.rex &= REX_OPCODE;
+    }
+  else if (i.rex != 0)
     add_prefix (REX_OPCODE | i.rex);


> > @@ -4354,12 +4394,12 @@ optimize_encoding (void)
> >  	  i.suffix = 0;
> >  	  /* Convert to byte registers.  */
> >  	  if (i.types[1].bitfield.word)
> > -	    j = 16;
> > +	    j = 16 + 16; // new 16 apx additional gprs.
> >  	  else if (i.types[1].bitfield.dword)
> > -	    j = 32;
> > +	    j = 32 + 16 * 2; // new 16 apx additional gprs
> >  	  else
> > -	    j = 48;
> > -	  if (!(i.op[1].regs->reg_flags & RegRex) && base_regnum < 4)
> > +	    j = 48 + 16 * 3; // new 16 apx additional gprs
> > +	  if (!(i.op[1].regs->reg_flags & (RegRex | RegRex2)) && base_regnum
> > +< 4)
> >  	    j += 8;
> 
> This is getting unwieldy: There are too many hard-coded literal numbers here,
> and there continues to be zero indication in i386-reg.tbl that the order of entries
> is actually relevant.
> 
> Also again, please write wellformed comments (when such are useful).
> 

Do you mean add a new column or something to replace the hard immediate here? I didn't find a good way to handle it, just add more comments and reduce the amount of hard code.

          if (i.types[1].bitfield.word)
            /* There are 32 8-bit registers.  */
            j = 32;
          else if (i.types[1].bitfield.dword)
            /* 32 8-bit registers + 32 16-bit registers.  */
            j = 64;
          else
            /* 32 8-bit registers + 32 16-bit registers
               + 32 32-bit registers.  */
            j = 96;

> > @@ -5269,6 +5309,9 @@ md_assemble (char *line)
> >  	case invalid_dest_and_src_register_set:
> >  	  err_msg = _("destination and source registers must be distinct");
> >  	  break;
> > +	case invalid_pseudo_prefix:
> > +	  err_msg = _("unsupport rex2 pseudo prefix");
> 
> If at all, "unsupported". Maybe better "cannot be used here"?

Done.

> 
> > @@ -5498,7 +5541,17 @@ md_assemble (char *line)
> >        as_warn (_("translating to `%sp'"), insn_name (&i.tm));
> >      }
> >
> > -  if (is_any_vex_encoding (&i.tm))
> > +  if (is_any_apx_encoding ())
> > +    {
> > +      if (!is_any_vex_encoding (&i.tm)
> 
> I think you should be able to use a cheaper predicate here. No VEX- encoded APX
> insns exist, aiui.
> 
> > +	  && i.tm.opcode_space <= SPACE_0F
> > +	  && !i.vex.register_specifier && !i.has_nf && !i.has_zero_upper)
> 
> Is the i.vex.register_specifier check really needed here? Any such template would
> be an EVEX one, wouldn't it (so the earlier check already covered those)?
> 
> > +	build_rex2_prefix ();
> > +
> > +      /* The individual REX.RXBW bits got consumed.  */
> > +      i.rex &= REX_OPCODE;
> 
> As to my earlier naming remark - much of course depends on what the further
> plans here are.

Yes, as your previous suggestion, these complicated judgement are removed.

> 
> > +    }
> > +  else if (is_any_vex_encoding (&i.tm))
> >      {
> >        if (!cpu_arch_flags.bitfield.cpui286)
> >  	{
> > @@ -5514,6 +5567,13 @@ md_assemble (char *line)
> >  	  return;
> >  	}
> >
> > +      /* Check for explicit REX2 prefix.  */
> > +      if (i.rex2 || i.rex2_encoding)
> > +	{
> > +	  as_bad (_("REX2 prefix invalid with `%s'"), insn_name (&i.tm));
> > +	  return;
> > +	}
> > +
> >        if (i.tm.opcode_modifier.vex)
> >  	build_vex_prefix (t);
> >        else
> > @@ -5553,11 +5613,11 @@ md_assemble (char *line)
> >  	  && (i.op[1].regs->reg_flags & RegRex64) != 0)
> >        || (((i.types[0].bitfield.class == Reg && i.types[0].bitfield.byte)
> >  	   || (i.types[1].bitfield.class == Reg && i.types[1].bitfield.byte))
> > -	  && i.rex != 0))
> > +	  && (i.rex != 0 || i.rex2!=0)))
> 
> Nit: Please get coding style right (also elsewhere).

Done.

> 
> > +5627,16 @@ md_assemble (char *line)
> >  	      gas_assert (!(i.op[x].regs->reg_flags & RegRex));
> >  	      /* In case it is "hi" register, give up.  */
> >  	      if (i.op[x].regs->reg_num > 3)
> > -		as_bad (_("can't encode register '%s%s' in an "
> > -			  "instruction requiring REX prefix."),
> > -			register_prefix, i.op[x].regs->reg_name);
> > +		{
> > +		  if (i.rex)
> > +		    as_bad (_("can't encode register '%s%s' in an "
> > +			      "instruction requiring REX prefix."),
> > +			    register_prefix, i.op[x].regs->reg_name);
> > +		  else
> > +		    as_bad (_("can't encode register '%s%s' in an "
> > +			      "instruction requiring REX2 prefix."),
> > +			    register_prefix, i.op[x].regs->reg_name);
> > +		}
> 
> I don't think separate messages are needed here, Just alter the existing one to
> say "... REX/REX2 ...".
> 

Done.

> >      {
> >        /* Check if we can add a REX_OPCODE byte.  Look for 8 bit operand
> >  	 that uses legacy register.  If it is "hi" register, don't add
> 
> I think this comment wants updating as well, so there's no question of it having
> gone stale (by mentioning only REX_OPCODE).
> 

Done.

> > @@ -6899,6 +6971,42 @@ VEX_check_encoding (const insn_template *t)
> >    return 0;
> >  }
> >
> > +/* Check if Egprs operands are valid for the instruction.  */
> > +
> > +static int
> > +check_EgprOperands (const insn_template *t) {
> > +  if (t->opcode_modifier.no_egpr)
> > +    {
> > +      for (unsigned int op = 0; op < i.operands; op++)
> > +	{
> > +	  if (i.types[op].bitfield.class != Reg)
> > +	    continue;
> > +
> > +	  if (i.op[op].regs->reg_flags & RegRex2)
> > +	    {
> > +	      i.error = register_type_mismatch;
> 
> Already here I wonder if re-using this error indicator (and hence issuing the same
> error message as is issued for other reasons) is going to be helpful. However, ...
> 
> > +	      return 1;
> > +	    }
> > +	}
> > +
> > +      if ((i.index_reg && (i.index_reg->reg_flags & RegRex2))
> > +	  || (i.base_reg && (i.base_reg->reg_flags & RegRex2)))
> > +	{
> > +	  i.error = register_type_mismatch;
> 
> ... here I'm certain it needs to be a different one. It should be made obvious that
> the register used is part of the address for the memory operand, not a register
> one.
> 

Done.

> > +	  return 1;
> > +	}
> > +
> > +      /* Check pseudo prefix {rex2} are valid.  */
> > +      if (i.rex2_encoding)
> > +	{
> > +	  i.error = invalid_pseudo_prefix;
> > +	  return 1;
> > +	}
> > +    }
> > +  return 0;
> > +}
> 
> Transiently, until more checking is added (like patch 2 in the second series you've
> sent), you'll break all kinds of insns which don't have No_egpr set, but which
> aren't valid to be used with the extended registers (e.g. all VEX encodings, to
> name one large group).
> 

We set No_egpr for VEX and some legacy (map2 and map3)  instructions in the patch 2.

      if (modifiers[Vex].value
         || (space > SPACE_0F
             && !(space == SPACE_EVEXMAP4
                  || modifiers[EVex].value
                  || modifiers[Disp8MemShift].value
                  || modifiers[Broadcast].value
                  || modifiers[Masking].value
                  || modifiers[SAE].value)))
       modifiers[No_egpr].value = 1;

> > @@ -13985,6 +14115,14 @@ static bool check_register (const reg_entry *r)
> >  	i.vec_encoding = vex_encoding_error;
> >      }
> >
> > +  if (r->reg_flags & RegRex2)
> > +    {
> > +      if (!cpu_arch_flags.bitfield.cpuapx_f
> > +	  || flag_code != CODE_64BIT
> > +	  || i.rex_encoding)
> 
> I'm not sure i.rex_encoding is valid to check (already) here. Or else you'd also
> need to check i.vec_encoding.
> 

i.rex_encoding should not be checked here since this encoding "REX 0x66 REX2" is allowed. I will delete it.

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-inval.s
> > @@ -0,0 +1,18 @@
> > +# Check Illegal 64bit APX instructions
> > +	.text
> > +	.arch .noapx_f
> > +	test    $0x7, %r17d
> > +	.arch .apx_f
> > +	test    $0x7, %r17d
> > +	xsave (%r16, %rbx)
> > +	xsave64 (%r16, %rbx)
> > +	xrstor (%r16, %rbx)
> > +	xrstor64 (%r16, %rbx)
> > +	xsaves (%r16, %rbx)
> > +	xsaves64 (%r16, %rbx)
> > +	xrstors (%r16, %rbx)
> > +	xrstors64 (%r16, %rbx)
> > +	xsaveopt (%r16, %rbx)
> > +	xsaveopt64 (%r16, %rbx)
> > +	xsavec (%r16, %rbx)
> > +	xsavec64 (%r16, %rbx)
> 
> Don't you also want to check the index register?

Done.

> > +0+ <_start>:
> > +\s*[a-f0-9]+:\s*d5 f0 d5 f0\s+{rex2} pmullw %mm0,%mm6
> > +\s*[a-f0-9]+:\s*d5 f9 d5 f9\s+{rex2} pmullw %mm1,%mm7
> > +\s*[a-f0-9]+:\s*d5 88 d5 f9\s+{rex2} pmullw %mm1,%mm7
> > +\s*[a-f0-9]+:\s*d5 f7 d5 f9\s+{rex2} pmullw %mm1,%mm7
> > +\s*[a-f0-9]+:\s*d5 80 d5 f9\s+{rex2} pmullw %mm1,%mm7
> > +\s*[a-f0-9]+:\s*66 d5 f9 d5 f9\s+{rex2} pmullw %xmm9,%xmm7
> 
> These all look valid, yet the test name says "invalid" and the title says "illegal".
> Can you clarify what this is about?

Only the last three are test illegal cases, I removed this file,  added {rex2}  pmullw* check in x86-64-pseudos.s and {rex2} xsave/xrstore test to x86-64-pseudos-bad.s

> 
> Also may I ask that you use [ 	] instead of \s, to aid readability?
> 

Done.

> > +++ b/gas/testsuite/gas/i386/x86-64-apx-rex2-inval.s
> > @@ -0,0 +1,25 @@
> > +# Check 64bit instructions with rex2 prefix bad encoding
> > +
> > +	.allow_index_reg
> > +	.text
> > +_start:
> > +# check {rex2} pseudo prefix to force REX2 encoding.
> > +.byte 0xd5, 0xf0, 0xd5, 0xf0
> > +.byte 0xd5, 0xf9, 0xd5, 0xf9
> > +.byte 0xd5, 0x88, 0xd5, 0xf9
> > +.byte 0xd5, 0xf7, 0xd5, 0xf9
> > +.byte 0xd5, 0x80, 0xd5, 0xf9
> > +
> > +.byte 0x66
> > +.byte 0xd5, 0xf9, 0xd5, 0xf9
> > +.byte 0x66, 0x41
> > +.byte 0xd5, 0xf9, 0xd5, 0xf9
> > +.byte 0xd5, 0xff, 0x21, 0xf8
> > +.byte 0xd5, 0x01, 0x21, 0x00
> > +.byte 0xd5, 0x00, 0x00, 0xf7
> > +.byte 0xd5, 0xff, 0x20, 0xf8
> > +# check xsave/xstore are not allowed to use rex2.
> > +.byte 0xd5, 0x81, 0xae, 0x27
> > +# check rex2 only use for map0/1
> > +.byte 0xd5, 0xc1, 0x38, 0xf6, 0x07
> 
> Please try to limit .byte use in source as much as possible. Emitting bogus
> prefixes may require its use, but that should be about it.
> 

Done, removed this file.

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-rex2.s
> > @@ -0,0 +1,175 @@
> > +## SIB
> > +         leal	1(%r20), %eax
> > +         leal	1(%r28), %eax
> > +         leal	129(%r20), %eax
> > +         leal	129(%r28), %eax
> 
> I don't see why the comment says "SIB" for these.
> 

Changed them to 
+         leal  1(%r16, %r20), %eax
+         leal  1(%r16, %r28), %r31d
+         leal  129(%r20, %r8), %eax
+         leal  129(%r28, %r8), %r31d

> > +## M bit
> > +         imull	%eax, %r15d
> > +         imull	%eax, %r16d
> > +	 punpckldq (%r18), %mm2 #D5906212
> 
> Please ensure consistent indentation, and please omit meaningless comments.
> 

Done.

> > +## AddRegFrm
> > +         movl	$1, %r16d
> 
> From here onwards I'm afraid I can't decipher any of the comments. In many
> cases the choice of what to test (and what not) looks pretty random.
> 
Removed these testcase. They have little to do with rex2, added some cases for traversing REX2 8 bit.

> > --- a/opcodes/i386-dis.c
> > +++ b/opcodes/i386-dis.c
> 
> (I'll look at the disassembler parts separately. This and the other patches are
> quite a bit too large anyway.)
> 
> > --- a/opcodes/i386-gen.c
> > +++ b/opcodes/i386-gen.c
> > @@ -380,6 +380,7 @@ static bitfield cpu_flags[] =
> >    BITFIELD (RAO_INT),
> >    BITFIELD (FRED),
> >    BITFIELD (LKGS),
> > +  BITFIELD (APX_F),
> 
> Additionally a dependency of APX_F on XSAVE needs introducing.
> 

You're right, APX_F is an XSAVE-enabled feature, added it.

> > --- a/opcodes/i386-opc.h
> > +++ b/opcodes/i386-opc.h
> > @@ -317,6 +317,8 @@ enum i386_cpu
> >    CpuAVX512F,
> >    /* Intel AVX-512 VL Instructions support required.  */
> >    CpuAVX512VL,
> > +  /* Intel APX Instructions support required.  */  CpuAPX_F,
> 
> The comment kind of misses the F in the feature identifier.
> 

Done.

> > +  /* egprs (r16-r31) on instruction illegal.  */  No_egpr,
> 
> I'm not overly happy with the name and spelling. How about NoEgpr? That's
> more in line with the majority of the attributes.
> 

NoEgpr is better, changed them.

> > @@ -789,6 +796,7 @@ typedef struct i386_opcode_modifier
> >    unsigned int attsyntax:1;
> >    unsigned int intelsyntax:1;
> >    unsigned int isa64:2;
> > +  unsigned int no_egpr:1;
> >  } i386_opcode_modifier;
> >
> >  /* Operand classes.  */
> > @@ -988,7 +996,7 @@ typedef struct insn_template
> >       AMD 3DNow! instructions.
> >       If this template has no extension opcode (the usual case) use None
> >       Instructions */
> > -  signed int extension_opcode:9;
> > +  signed int extension_opcode:0xA;
> 
> Why?

This is a mistake, recovered.

> > @@ -1001,7 +1009,8 @@ typedef struct insn_template
> > +#define Prefix_REX2		9	/* {rex2} */
> > +#define Prefix_NoOptimize	0xA	/* {nooptimize} */
> 
> Any reason to use a hex number here?

Decimal should be used here.

> > @@ -1028,6 +1037,7 @@ typedef struct
> >  #define RegRex	    0x1  /* Extended register.  */
> >  #define RegRex64    0x2  /* Extended 8 bit register.  */
> >  #define RegVRex	    0x4  /* Extended vector register.  */
> > +#define RegRex2	    0x8  /* Extended rex2 interge register.  */
> 
> Since I expect / hope the bit will be reused for extended EVEX encodings, I don't
> think "rex2" should be mentioned here. Also "integer" please.
 
Done.

> > @@ -93,6 +141,22 @@ r12, Class=Reg|Qword|BaseIndex, RegRex, 4,
> > Dw2Inval, 12  r13, Class=Reg|Qword|BaseIndex, RegRex, 5, Dw2Inval, 13
> > r14, Class=Reg|Qword|BaseIndex, RegRex, 6, Dw2Inval, 14  r15,
> > Class=Reg|Qword|BaseIndex, RegRex, 7, Dw2Inval, 15
> > +r16, Class=Reg|Qword|BaseIndex, RegRex2, 0, Dw2Inval, 130 r17,
> > +Class=Reg|Qword|BaseIndex, RegRex2, 1, Dw2Inval, 131 r18,
> > +Class=Reg|Qword|BaseIndex, RegRex2, 2, Dw2Inval, 132 r19,
> > +Class=Reg|Qword|BaseIndex, RegRex2, 3, Dw2Inval, 133 r20,
> > +Class=Reg|Qword|BaseIndex, RegRex2, 4, Dw2Inval, 134 r21,
> > +Class=Reg|Qword|BaseIndex, RegRex2, 5, Dw2Inval, 135 r22,
> > +Class=Reg|Qword|BaseIndex, RegRex2, 6, Dw2Inval, 136 r23,
> > +Class=Reg|Qword|BaseIndex, RegRex2, 7, Dw2Inval, 137 r24,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 0, Dw2Inval, 138 r25,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 1, Dw2Inval, 139 r26,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 2, Dw2Inval, 140 r27,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 3, Dw2Inval, 141 r28,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 4, Dw2Inval, 142 r29,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 5, Dw2Inval, 143 r30,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 6, Dw2Inval, 144 r31,
> > +Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 7, Dw2Inval, 145
> 
> I wonder how the Dwarf register number were chosen ...

125 is used In k7 register, which is the largest number before, 130 should be a random number just bigger than 125.

k0, Class=RegMask, 0, 0, 93, 118
k1, Class=RegMask, 0, 1, 94, 119
k2, Class=RegMask, 0, 2, 95, 120
k3, Class=RegMask, 0, 3, 96, 121
k4, Class=RegMask, 0, 4, 97, 122
k5, Class=RegMask, 0, 5, 98, 123
k6, Class=RegMask, 0, 6, 99, 124
k7, Class=RegMask, 0, 7, 100, 125

Thanks
Lili.
> 
> Jan

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

* RE: [PATCH 1/8] Support APX GPR32 with rex2 prefix
  2023-09-21 15:51   ` Jan Beulich
@ 2023-09-27 15:59     ` Cui, Lili
  2023-09-28  8:02       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-09-27 15:59 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> >    /* Bits of REX we've already used.  */
> >    uint8_t rex_used;
> >
> > +  /* REX2 prefix for the current instruction use gpr32(r16-r31). */
> > + unsigned char rex2;
> > +  /* Bits of REX2 we've already used.  */  unsigned char rex2_used;
> 
> Since these two fields don't hold the REX2 bits directly, the comment(s)
> want(s) saying what they contain.
> 
> > +  unsigned char rex2_payload;
> 
> I don't see this field used in more than one function. In which case it can be a
> local variable there (in the innermost scope covering all uses).
> 
Yes, it should be local variable. Changed it.

> > @@ -367,6 +381,7 @@ fetch_error (const instr_info *ins)
> >  #define PREFIX_IGNORED_DATA	(PREFIX_DATA <<
> PREFIX_IGNORED_SHIFT)
> >  #define PREFIX_IGNORED_ADDR	(PREFIX_ADDR <<
> PREFIX_IGNORED_SHIFT)
> >  #define PREFIX_IGNORED_LOCK	(PREFIX_LOCK <<
> PREFIX_IGNORED_SHIFT)
> > +#define PREFIX_IGNORED_REX2	(PREFIX_REX2 <<
> PREFIX_IGNORED_SHIFT)
> 
> I don't think "ignored" is what you mean, considering ...
> 
> >      /* MOD_0FAE_REG_5 */
> > -    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE },
> > +    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE |
> PREFIX_IGNORED_REX2 },
> >      { PREFIX_TABLE (PREFIX_0FAE_REG_5_MOD_3) },
> >    },
> 
> ... these uses here.
> 

Replaced " PREFIX_IGNORED_REX2" with "ILLEGAL_PREFIX_REX2 ".

> >      case USE_EVEX_TABLE:
> > +      if (ins->last_rex2_prefix >= 0)
> > +	return &bad_opcode;
> >        ins->two_source_ops = false;
> >        /* EVEX prefix.  */
> >        ins->vex.evex = true;
> 
> There aren't similar REX checks here, yet both should be handled as similarly
> as possible.

Done.

> 
> > @@ -9292,13 +9344,17 @@ print_insn (bfd_vma pc, disassemble_info
> *info, int intel_syntax)
> >        goto out;
> >      }
> >
> > -  if (*ins.codep == 0x0f)
> > +  /* M0 in rex2 prefix represents map0 or map1.  */  if (*ins.codep
> > + == 0x0f || (ins.rex2 & 0x8))
> 
> Please can literals like the 0x8 here gain meaningful names (REX2_M in this
> case)?
> 

Done.

> > @@ -9468,6 +9532,7 @@ print_insn (bfd_vma pc, disassemble_info *info,
> int intel_syntax)
> >        ins.used_prefixes |= PREFIX_DATA;
> >        /* Fall through.  */
> >      case PREFIX_OPCODE:
> > +    case PREFIX_OPCODE | PREFIX_IGNORED_REX2:
> 
> You may rather want to mask off the high part in the switch() expression itself.

Tried it , found that 'Case PREFIX_IGNORED' uses the high part of this switch. 

#define PREFIX_IGNORED          (PREFIX_IGNORED_REPZ \
                                 | PREFIX_IGNORED_REPNZ \
                                 | PREFIX_IGNORED_DATA)

#define PREFIX_IGNORED_REPZ     (PREFIX_REPZ << PREFIX_IGNORED_SHIFT)
#define PREFIX_IGNORED_REPNZ    (PREFIX_REPNZ << PREFIX_IGNORED_SHIFT)
#define PREFIX_IGNORED_DATA     (PREFIX_DATA << PREFIX_IGNORED_SHIFT)

> > @@ -9510,9 +9575,17 @@ print_insn (bfd_vma pc, disassemble_info *info,
> > int intel_syntax)
> >
> >    /* Check if the REX prefix is used.  */
> >    if ((ins.rex ^ ins.rex_used) == 0
> > -      && !ins.need_vex && ins.last_rex_prefix >= 0)
> > +      && !ins.need_vex && ins.last_rex_prefix >= 0
> > +      && ins.last_rex2_prefix < 0)
> >      ins.all_prefixes[ins.last_rex_prefix] = 0;
> >
> > +  /* Check if the REX2 prefix is used.  */
> > +  if (ins.last_rex2_prefix >= 0
> > +      && ((((ins.rex2 & 0x7) ^ (ins.rex2_used & 0x7)) == 0
> > +	   && (ins.rex2 & 0x7))
> > +	  || dp == &bad_opcode))
> > +    ins.all_prefixes[ins.last_rex2_prefix] = 0;
> 
> I'm again puzzled by the dissimilarity with the REX handling. Furthermore,
> with the way you split the REX2 payload byte, I don't think the combination of
> REX and REX2 handling above will result in correct output in all cases.
> (There shouldn't be mention of an unused REX bit when REX2 was in use on
> an insn.)

Done.

> > @@ -11307,6 +11386,7 @@ static bool
> >  OP_E_memory (instr_info *ins, int bytemode, int sizeflag)  {
> >    int add = (ins->rex & REX_B) ? 8 : 0;
> > +  add += (ins->rex2 & REX_B) ? 16 : 0;
> >    int riprel = 0;
> >    int shift;
> 
> While generally mixing declaration and statements is okay nowadays, putting
> a statement in the middle of a block's initial declarations would imo still
> better be avoided.

Done.

Moved this comment from patch2/8 to here.
      if (modifiers[Vex].value
	  || (space > SPACE_0F
	      && space != SPACE_EVEXMAP4
	      && !modifiers[EVex].value
	      && !modifiers[Disp8MemShift].value
	      && !modifiers[Broadcast].value
	      && !modifiers[Masking].value
	      && !modifiers[SAE].value))
       }
	modifiers[No_egpr].value = 1;
      }

>And then - shouldn't at least part of this already be put in place in patch 1?
>Finally, to avoid the split between where this attribute gets set, wouldn't it be possible to also handle the XSAVE/XRSTOR variants here rather than directly in the opcode table?

I put part of this in patch 1, and add a new function to handle NoEgpr (the parameter's number of  process_i386_opcode_modifier is a bit too much, so I added a new function).
I merged partII patch2/6 into this patch. listed it with 3.

We handle the following in function if_entry_needs_special_handle():
1.  Prefixing XSAVE* and XRSTOR* instructions with REX2 triggers #UD.
2.  Disable Egpr for 3dnow and 3dnowA.
3.  All opcodes listed map0 0x4*, 0x7*, 0xa* and map0 0x3*, 0x8* are reserved under REX2 and triggers #UD when prefixed with REX2

Finally, thank you for checking these large patches so carefully. The next few days are China's national holidays, which last about 8 days, my feedback time will be longer. Thank you.

Lili.

> Jan

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

* Re: [PATCH 4/8] Support APX NDD
  2023-09-19 15:25 ` [PATCH 4/8] Support APX NDD Cui, Lili
  2023-09-27 14:44   ` Jan Beulich
@ 2023-09-28  7:57   ` Jan Beulich
  2023-10-22 14:57     ` Cui, Lili
  2023-10-24 11:39     ` Cui, Lili
  1 sibling, 2 replies; 91+ messages in thread
From: Jan Beulich @ 2023-09-28  7:57 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, konglin1, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/opcodes/i386-dis-evex-prefix.h
> +++ b/opcodes/i386-dis-evex-prefix.h
> @@ -353,8 +353,8 @@
>    /* PREFIX_EVEX_MAP4_66 */
>    {
>      { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
> -    { "adoxS",	{ Gdq, Edq }, 0 },
> -    { "adcxS",	{ Gdq, Edq }, 0 },
> +    { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
> +    { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },

With the OP_VEX() change moved to the earlier patch, you wouldn't need to
alter again right away what was just added there.

> --- a/opcodes/i386-dis-evex-reg.h
> +++ b/opcodes/i386-dis-evex-reg.h
> @@ -56,6 +56,105 @@
>      { "blsmskS",	{ VexGdq, Edq }, 0 },
>      { "blsiS",		{ VexGdq, Edq }, 0 },
>    },
> +  /* REG_EVEX_MAP4_80 */
> +  {
> +    { "addA",	{ VexGb, Eb, Ib }, 0 },
> +    { "orA",	{ VexGb, Eb, Ib }, 0 },
> +    { "adcA",	{ VexGb, Eb, Ib }, 0 },
> +    { "sbbA",	{ VexGb, Eb, Ib }, 0 },

Aren't these two and other adc/sbb entries required already in the earlier
patch, for consistency with what you add there on the assembler side?

> +    { "andA",	{ VexGb, Eb, Ib }, 0 },
> +    { "subA",	{ VexGb, Eb, Ib }, 0 },
> +    { "xorA",	{ VexGb, Eb, Ib }, 0 },
> +    { Bad_Opcode },
> +  },
> +  /* REG_EVEX_MAP4_81 */
> +  {
> +    { "addQ",	{ VexGv, Ev, Iv }, 0 },
> +    { "orQ",	{ VexGv, Ev, Iv }, 0 },
> +    { "adcQ",	{ VexGv, Ev, Iv }, 0 },
> +    { "sbbQ",	{ VexGv, Ev, Iv }, 0 },
> +    { "andQ",	{ VexGv, Ev, Iv }, 0 },
> +    { "subQ",	{ VexGv, Ev, Iv }, 0 },
> +    { "xorQ",	{ VexGv, Ev, Iv }, 0 },
> +    { Bad_Opcode },
> +  },
> +  /* REG_EVEX_MAP4_83 */
> +  {
> +    { "addQ",	{ VexGv, Ev, sIb }, 0 },
> +    { "orQ",	{ VexGv, Ev, sIb }, 0 },
> +    { "adcQ",	{ VexGv, Ev, sIb }, 0 },
> +    { "sbbQ",	{ VexGv, Ev, sIb }, 0 },
> +    { "andQ",	{ VexGv, Ev, sIb }, 0 },
> +    { "subQ",	{ VexGv, Ev, sIb }, 0 },
> +    { "xorQ",	{ VexGv, Ev, sIb }, 0 },
> +    { Bad_Opcode },
> +  },

While these are needed because of the differences (from existing table
entries we have) in the last entry (albeit I don't think those last
entries need to actually be spelled out; you don't spell out trailing
invalid entries further down, and we don't do so elsewhere either), ...

> +  /* REG_EVEX_MAP4_C0 */
> +  {
> +    { "rolA",	{ VexGb, Eb, Ib }, 0 },
> +    { "rorA",	{ VexGb, Eb, Ib }, 0 },
> +    { "rclA",	{ VexGb, Eb, Ib }, 0 },
> +    { "rcrA",	{ VexGb, Eb, Ib }, 0 },
> +    { "shlA",	{ VexGb, Eb, Ib }, 0 },
> +    { "shrA",	{ VexGb, Eb, Ib }, 0 },
> +    { "shlA",	{ VexGb, Eb, Ib }, 0 },
> +    { "sarA",	{ VexGb, Eb, Ib }, 0 },
> +  },
> +  /* REG_EVEX_MAP4_C1 */
> +  {
> +    { "rolQ",	{ VexGv, Ev, Ib }, 0 },
> +    { "rorQ",	{ VexGv, Ev, Ib }, 0 },
> +    { "rclQ",	{ VexGv, Ev, Ib }, 0 },
> +    { "rcrQ",	{ VexGv, Ev, Ib }, 0 },
> +    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
> +    { "shrQ",	{ VexGv, Ev, Ib }, 0 },
> +    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
> +    { "sarQ",	{ VexGv, Ev, Ib }, 0 },
> +  },
> +  /* REG_EVEX_MAP4_D0 */
> +  {
> +    { "rolA",	{ VexGb, Eb, I1 }, 0 },
> +    { "rorA",	{ VexGb, Eb, I1 }, 0 },
> +    { "rclA",	{ VexGb, Eb, I1 }, 0 },
> +    { "rcrA",	{ VexGb, Eb, I1 }, 0 },
> +    { "shlA",	{ VexGb, Eb, I1 }, 0 },
> +    { "shrA",	{ VexGb, Eb, I1 }, 0 },
> +    { "shlA",	{ VexGb, Eb, I1 }, 0 },
> +    { "sarA",	{ VexGb, Eb, I1 }, 0 },
> +  },
> +  /* REG_EVEX_MAP4_D1 */
> +  {
> +    { "rolQ",	{ VexGv, Ev, I1 }, 0 },
> +    { "rorQ",	{ VexGv, Ev, I1 }, 0 },
> +    { "rclQ",	{ VexGv, Ev, I1 }, 0 },
> +    { "rcrQ",	{ VexGv, Ev, I1 }, 0 },
> +    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
> +    { "shrQ",	{ VexGv, Ev, I1 }, 0 },
> +    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
> +    { "sarQ",	{ VexGv, Ev, I1 }, 0 },
> +  },
> +  /* REG_EVEX_MAP4_D2 */
> +  {
> +    { "rolA",	{ VexGb, Eb, CL }, 0 },
> +    { "rorA",	{ VexGb, Eb, CL }, 0 },
> +    { "rclA",	{ VexGb, Eb, CL }, 0 },
> +    { "rcrA",	{ VexGb, Eb, CL }, 0 },
> +    { "shlA",	{ VexGb, Eb, CL }, 0 },
> +    { "shrA",	{ VexGb, Eb, CL }, 0 },
> +    { "shlA",	{ VexGb, Eb, CL }, 0 },
> +    { "sarA",	{ VexGb, Eb, CL }, 0 },
> +  },
> +  /* REG_EVEX_MAP4_D3 */
> +  {
> +    { "rolQ",	{ VexGv, Ev, CL }, 0 },
> +    { "rorQ",	{ VexGv, Ev, CL }, 0 },
> +    { "rclQ",	{ VexGv, Ev, CL }, 0 },
> +    { "rcrQ",	{ VexGv, Ev, CL }, 0 },
> +    { "shlQ",	{ VexGv, Ev, CL }, 0 },
> +    { "shrQ",	{ VexGv, Ev, CL }, 0 },
> +    { "shlQ",	{ VexGv, Ev, CL }, 0 },
> +    { "sarQ",	{ VexGv, Ev, CL }, 0 },
> +  },

... do we really need all these new entries? OP_VEX() checks need_vex first
thing, so simply adjusting and then re-using the existing entries would seem
possible.

> @@ -9070,6 +9085,14 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>  	  ins->rex &= ~REX_B;
>  	  ins->rex2 &= ~REX_R;
>  	}
> +      if (ins->evex_type == evex_from_legacy)
> +	{
> +	  if (ins->vex.ll || ins->vex.zeroing
> +	      || (!ins->vex.b && (ins->vex.register_specifier
> +				  || !ins->vex.v)))
> +	    return &bad_opcode;

Don't these checks also apply to evex_from_vex?

> +	  ins->rex |= REX_OPCODE;

This, otoh, may truly be evex_from_legacy-only (but I'm not entirely
certain).

> @@ -9080,7 +9103,7 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>  	return &err_opcode;
>  
>        /* Set vector length.  */
> -      if (ins->modrm.mod == 3 && ins->vex.b)
> +      if (ins->modrm.mod == 3 && ins->vex.b && ins->evex_type == evex_default)
>  	ins->vex.length = 512;

Down from here, still in the same function, there's another vex.b
check which I think also wants qualifying.

> @@ -10994,7 +11017,7 @@ print_displacement (instr_info *ins, bfd_signed_vma val)
>  static void
>  intel_operand_size (instr_info *ins, int bytemode, int sizeflag)
>  {
> -  if (ins->vex.b)
> +  if (ins->vex.b && ins->evex_type != evex_from_legacy)

Wouldn't this better be ins->evex_type == evex_default, ...

> @@ -11928,7 +11951,8 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
>  	ins->vex.no_broadcast = true;
>  
>        if (!ins->vex.no_broadcast
> -	  && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used)))
> +	  && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used))
> +	  && ins->evex_type == evex_default)

... just like you have it here?

However, for this change, doesn't this need moving to the enclosing if()?
You should accidentally set EVEX_b_used here for APX insns.

> @@ -13280,6 +13304,14 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED)
>    if (!ins->need_vex)
>      return true;
>  
> +  if (ins->evex_type == evex_from_legacy)
> +    {
> +      if (ins->vex.b)
> +	ins->evex_used |= EVEX_b_used;
> +      else
> +	 return true;
> +    }

When you reuse fields or definitions in places where their names don't
match their purpose (the field dealt with here is "nd" after all, not
"b"), a comment wants adding. There's also something odd with
indentation here, but I suppose an if/else construct isn't needed in
the first place.

Jan

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

* Re: [PATCH 1/8] Support APX GPR32 with rex2 prefix
  2023-09-27 15:59     ` Cui, Lili
@ 2023-09-28  8:02       ` Jan Beulich
  2023-10-07  3:27         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-28  8:02 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 27.09.2023 17:59, Cui, Lili wrote:
>>> @@ -367,6 +381,7 @@ fetch_error (const instr_info *ins)
>>>  #define PREFIX_IGNORED_DATA	(PREFIX_DATA <<
>> PREFIX_IGNORED_SHIFT)
>>>  #define PREFIX_IGNORED_ADDR	(PREFIX_ADDR <<
>> PREFIX_IGNORED_SHIFT)
>>>  #define PREFIX_IGNORED_LOCK	(PREFIX_LOCK <<
>> PREFIX_IGNORED_SHIFT)
>>> +#define PREFIX_IGNORED_REX2	(PREFIX_REX2 <<
>> PREFIX_IGNORED_SHIFT)
>>
>> I don't think "ignored" is what you mean, considering ...
>>
>>>      /* MOD_0FAE_REG_5 */
>>> -    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE },
>>> +    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE |
>> PREFIX_IGNORED_REX2 },
>>>      { PREFIX_TABLE (PREFIX_0FAE_REG_5_MOD_3) },
>>>    },
>>
>> ... these uses here.
>>
> 
> Replaced " PREFIX_IGNORED_REX2" with "ILLEGAL_PREFIX_REX2 ".

May I ask that we keep PREFIX_ first, i.e. PREFIX_ILLEGAL_REX2 (or
PREFIX_REX2_ILLEGAL)?

> Finally, thank you for checking these large patches so carefully. The next few days are China's national holidays, which last about 8 days, my feedback time will be longer. Thank you.

Oh, that fits nicely with me taking vacation the next two weeks.

Jan

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

* Re: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-09-19 15:25 ` [PATCH 5/8] Support APX NDD optimized encoding Cui, Lili
@ 2023-09-28  9:29   ` Jan Beulich
  2023-10-23  2:57     ` Hu, Lin1
                       ` (2 more replies)
  0 siblings, 3 replies; 91+ messages in thread
From: Jan Beulich @ 2023-09-28  9:29 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, Hu, Lin1, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
>    return 0;
>  }
>  
> +/* Optimize APX NDD insns to non-NDD insns.  */
> +
> +static int

"bool" please when the function merely returns a yes/no indicator.

> +optimize_NDD_to_nonNDD (const insn_template *t)
> +{
> +  if (t->opcode_modifier.vexvvvv
> +      && t->opcode_space == SPACE_EVEXMAP4
> +      && i.reg_operands >= 2

See the remark near the bottom of the changes to this file: This
condition is likely insufficient, as
- further insns allowing ND may not be treated this way (CCMPscc,
  CTESTscc, and one of the CFCMOVcc forms at the very least),
- {nf} uses will want excluding, as it would be merely a waste of
  time to try to re-match with fewer operands.

> +      && (i.types[i.operands - 1].bitfield.dword
> +	  || i.types[i.operands - 1].bitfield.qword))

Why do you exclude byte and word operations? Imo what you want to
check is class being Reg.

> +    {
> +      int tmp_flag = -1;

Either type or name need to change: A variable of this name wants to be
"bool". I would have suggested "dupl" as the name, but that how doesn't
fit how the variable is used below.

(Of course I'm also not happy with the use of plain int here and below,
but that's a wider issue throughout the source file. Still it would be
nice if new code properly used unsigned int whenever only non-negative
values are to be held.)

> +      int dest = i.operands - 1;
> +      int src1 = (i.operands > 2) ? i.operands - 2 : 0;
> +      int src2 = (i.operands > 3) ? i.operands - 3 : 0;
> +
> +      if (i.op[src1].regs == i.op[dest].regs)
> +	tmp_flag = src2;
> +      /* adcx and adox don't have D bit.  */

IMUL doesn't either, yet ought to also be eligible? We have a "commutative"
flag already - can't you extend its use to the purposes you have here? I
expect this would simplify ...

> +      else if (i.op[src2].regs == i.op[dest].regs

Just to mention it: Both this and the earlier similar equality check aren't
entirely legal, as you haven't previously checked that the respective
operands actually are register ones. Analysis tools (like the UB
sanitizer) may choke on this, even if otherwise this shouldn't be a problem
from what I can tell.

> +	       && (t->opcode_modifier.d
> +		   || t->mnem_off == MN_adcx
> +		   || t->mnem_off == MN_adox)
> +	       && (t->mnem_off != MN_sub)
> +	       && (t->mnem_off != MN_sbb))

... this condition.

> +	tmp_flag = src1;
> +      if (tmp_flag != -1)
> +	{
> +	  --i.operands;
> +	  --i.reg_operands;
> +	  --i.tm.operands;
> +
> +	  if (tmp_flag != src2)
> +	      swap_2_operands (tmp_flag, src2);

Nit: There's once again something wrong with indentation here.

> +	  return 1;
> +	}
> +    }
> +  return 0;
> +}
> +
>  /* Helper function for the progress() macro in match_template().  */
>  static INLINE enum i386_error progress (enum i386_error new,
>  					enum i386_error last,
> @@ -7562,6 +7602,15 @@ match_template (char mnem_suffix)
>  	     slip through to break.  */
>  	}
>  
> +      /* If we can optimize a NDD insn to non-NDD insn, like
> +	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
> +      if (optimize_NDD_to_nonNDD (t))

I don't think such an optimization should be done without any form of
-O.

As to the function name, maybe better optimize_NDD_to_REX2()?

> +	{
> +	  t = current_templates->start;
> +	  --t;
> +	  continue;

So the decrement is to compensate the loop continuation. Nevertheless imo
this wants spelling "t = current_templates->start - 1". Yet like above
note that a good UB checker may object to this subtraction of 1, unless
you build upon templates making it here not being part of the first group
in i386_optab[]. (If any such dependency exists, it needs spelling out in
a suitable place, i.e. in particular one that's hard to overlook when
doing re-arrangements.)

> +	}
> +
>        /* Check if VEX/EVEX encoding requirements can be satisfied.  */
>        if (VEX_check_encoding (t))
>  	{

I also wonder whether this doesn't need moving further down. I expect
at least VEX_check_encoding() may need running first.

But I'm worried anyway that this patch comes too early in the series.
{evex} prefixes or use of {nf} would need skipping the optimization
attempt, and getting all the conditions right is likely easier to see
when all the rest of the infrastructure is in place.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
> @@ -0,0 +1,115 @@
> +# Check 64bit APX NDD instructions with optimized encoding
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +inc    %ax,%ax
> +inc    %eax,%eax
> +inc    %rax,%rax
> +inc    %r16,%r16
> +add    %r31b,%r8b,%r8b
> +add    %r31b,%r8b,%r31b
> +addb    %r31b,%r8b,%r8b
> +add    %r31,%r8,%r8
> +addq    %r31,%r8,%r8
> +add    %r31d,%r8d,%r8d
> +addl    %r31d,%r8d,%r8d
> +add    %r31w,%r8w,%r8w
> +addw    %r31w,%r8w,%r8w
> +{store} add    %r31,%r8,%r8
> +{load}  add    %r31,%r8,%r8
> +add    %r31,(%r8),%r31
> +add    (%r31),%r8,%r8
> +add    $0x12344433,%r15,%r15
> +add    $0xfffffffff4332211,%r8,%r8
> +dec    %r17,%r17
> +not    %r17,%r17
> +neg    %r17,%r17
> +sub    %r15,%r17,%r17
> +sub    %r15d,(%r8),%r15d
> +sub    (%r15,%rax,1),%r16,%r16
> +sub    $0x1234,%r30,%r30
> +sbb    %r15,%r17,%r17
> +sbb    %r15,(%r8),%r15
> +sbb    (%r15,%rax,1),%r16,%r16
> +sbb    $0x1234,%r30,%r30
> +adc    %r15,%r17,%r17
> +adc    %r15d,(%r8),%r15d
> +adc    (%r15,%rax,1),%r16,%r16
> +adc    $0x1234,%r30,%r30
> +or    %r15,%r17,%r17
> +or    %r15d,(%r8),%r15d
> +or    (%r15,%rax,1),%r16,%r16
> +or    $0x1234,%r30,%r30
> +xor    %r15,%r17,%r17
> +xor    %r15d,(%r8),%r15d
> +xor    (%r15,%rax,1),%r16,%r16
> +xor    $0x1234,%r30,%r30
> +and    %r15,%r17,%r17
> +and    %r15d,(%r8),%r15d
> +and    (%r15,%rax,1),%r16,%r16
> +and    $0x1234,%r30,%r30
> +and    $0x1234,%r30
> +ror    %r31,%r31
> +rorb   %r31b,%r31b

Please be consistent with omitting (or having) suffixes (further up you
simply test both variants, but that's not the case throughout ...

> +ror    $0x2,%r12,%r12
> +rol    %r31,%r31
> +rolb   %r31b,%r31b
> +rol    $0x2,%r12,%r12
> +rcr    %r31,%r31
> +rcrb   %r31b,%r31b
> +rcr    $0x2,%r12b,%r12b
> +rcr    $0x2,%r12,%r12
> +rcl    %r31,%r31
> +rclb   %r31b,%r31b
> +rcl    $0x2,%r12b,%r12b
> +rcl    $0x2,%r12,%r12
> +shl    %r31,%r31
> +shlb   %r31b,%r31b
> +shl    $0x2,%r12b,%r12b
> +shl    $0x2,%r12,%r12
> +sar    %r31,%r31
> +sarb   %r31b,%r31b
> +sar    $0x2,%r12b,%r12b
> +sar    $0x2,%r12,%r12
> +shl    %r31,%r31
> +shlb   %r31b,%r31b
> +shl    $0x2,%r12b,%r12b
> +shl    $0x2,%r12,%r12
> +shr    %r31,%r31
> +shrb   %r31b,%r31b

... here.

Jan

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

* Re: [PATCH 6/8] Support APX Push2/Pop2
  2023-09-19 15:25 ` [PATCH 6/8] Support APX Push2/Pop2 Cui, Lili
@ 2023-09-28 11:37   ` Jan Beulich
  2023-10-30 15:21     ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-28 11:37 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, Mo, Zewei, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -5667,6 +5667,22 @@ md_assemble (char *line)
>        i.rex &= REX_OPCODE;
>      }
>  
> +  if (i.tm.opcode_modifier.push2pop2)
> +    {
> +      i.imm_operands = 0;

Why?

> +      unsigned int reg1 = register_number (i.op[0].regs);
> +      unsigned int reg2 = register_number (i.op[1].regs);
> +
> +      /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same registers.  */
> +      if (reg1 == 0x4 || reg2 == 0x4)
> +	as_bad (_("%s for `%s'"), _("invalid register operand"),
> +		insn_name (current_templates->start));
> +
> +      if ((i.tm.mnem_off == MN_pop2 || i.tm.mnem_off == MN_pop2p) && reg1 == reg2)

This would be easier with a single opcode check on the lhs of the &&.

> +	as_bad (_("%s for `%s'"), _("invalid register operand"),
> +		insn_name (current_templates->start));
> +    }

Both error messages want to be more specific, such that it's clear
what exactly is wrong. Also a string literal for %s is slightly odd,
and may pose issues to translators.

Furthermore there are pre-existing insns with restrictions on register
operands. I wonder whether these new checks wouldn't better be put
close to those.

> @@ -7100,7 +7116,11 @@ optimize_NDD_to_nonNDD (const insn_template *t)
>        && t->opcode_space == SPACE_EVEXMAP4
>        && i.reg_operands >= 2
>        && (i.types[i.operands - 1].bitfield.dword
> -	  || i.types[i.operands - 1].bitfield.qword))
> +	  || i.types[i.operands - 1].bitfield.qword)
> +      && (t->mnem_off != MN_pop2
> +	  && t->mnem_off != MN_pop2p
> +	  && t->mnem_off != MN_push2
> +	  && t->mnem_off != MN_push2p))

If an explicit check is needed here, why not use the push2pop2 attribute?

> @@ -8912,7 +8932,13 @@ build_modrm_byte (void)
>        dest = ~0;

This already sets dest ...

>      }
>    gas_assert (source < dest);
> -  if (i.tm.opcode_modifier.operandconstraint == SWAP_SOURCES
> +  if (i.tm.opcode_modifier.push2pop2)
> +    {
> +      v = 1;
> +      dest = (unsigned int) ~0;

... to the intended value. Furthermore, doesn't ...

> +      source = 0;
> +    }
> +  else if (i.tm.opcode_modifier.operandconstraint == SWAP_SOURCES
>        && source != op)
>      {
>        unsigned int tmp = source;

... this logic already take care of the wanted swapping, provided the
templates get SwapSources added? Hmm, odd - you already have that
attribute on the two POP2 templates, but not the two PUSH2 ones. Yet both
use identical operand (encoding) order.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d
> @@ -0,0 +1,29 @@
> +#as: --64
> +#objdump: -dw
> +#name: illegal decoding of APX-push2pop2 insns

Decoding cannot be illegal. Either you mean encoding, or you mean
"decoding of illegal APX-push2pop2 insn forms".

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s
> @@ -0,0 +1,19 @@
> +# Check illegal bytecode of APX-Push2Pop2 instructions
> +# pop2 %rax, %rbx

What's illegal here? From ...

> +# pop2 %rax, %rsp
> +# push2 %rsp, %r17
> +# pop2 %r12, %r12
> +# pop2 %r31, %r31
> +
> +	.allow_index_reg
> +	.text
> +popnd0:
> +	.byte 0x62,0xF4,0x64,0x08,0x8F,0xC0

... the label name I guess EVEX.nd=0, but that needs saying. (As mentioned
earlier, the comments want moving next to the code emission anyway, and
.byte wants avoiding it at all possible.)

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
> @@ -0,0 +1,13 @@
> +# Check illegal APX-Push2Pop2 instructions
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +	push2 %eax, %ebx
> +	pop2 %rax, %rsp
> +	push2 %rsp, %r17
> +	pop2 %r12, %r12
> +	push2p %eax, %ebx
> +	pop2p %rax, %rsp
> +	push2p %rsp, %r17
> +	pop2p %r12, %r12

Please make sure that at least one of the forms uses %rsp once as first
and once as second operand for both push and pop.

> --- a/opcodes/i386-dis-evex-x86.h
> +++ b/opcodes/i386-dis-evex-x86.h
> @@ -138,3 +138,13 @@
>      { Bad_Opcode },
>      { VEX_LEN_TABLE (VEX_LEN_0F3AF0) },
>    },
> +  /* X86_64_EVEX_MAP4_8F*/

Nit: Please make well-formed comments (...

> +  {
> +    { Bad_Opcode },
> +    { EVEX_LEN_TABLE (EVEX_LEN_MAP4_8F_X86_64) },
> +  },
> +  /* X86_64_EVEX_MAP4_FF_R_6*/

... i.e. also here and possibly elsewhere).

> @@ -1341,6 +1354,9 @@ enum
>    X86_64_EVEX_0F38F6,
>    X86_64_EVEX_0F38F7,
>    X86_64_EVEX_0F3AF0,
> +
> +  X86_64_EVEX_MAP4_8F,
> +  X86_64_EVEX_MAP4_FF_R_6,
>  };

This might indicate a problem in patch 4: Why is the x86-64 decode step
entirely missing there? Or, if correct there, why is it needed here? For
push and pop here I'd expect decode order and hence enumerators to be
entirely consistent.

> @@ -1537,7 +1553,10 @@ enum
>    EVEX_LEN_0F3A39,
>    EVEX_LEN_0F3A3A,
>    EVEX_LEN_0F3A3B,
> -  EVEX_LEN_0F3A43
> +  EVEX_LEN_0F3A43,
> +
> +  EVEX_LEN_MAP4_8F_X86_64,
> +  EVEX_LEN_MAP4_FF_R_6_X86_64,
>  };

Prior changes didn't find it necessary to handle EVEX.l through a table
lookup - why is this needed here? Map4 has uniform requirements, and an
earlier patch added respective checking, iirc.


> @@ -8757,10 +8779,24 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>        dp = &prefix_table[dp->op[1].bytemode][vindex];
>        break;
>  
> +    case USE_X86_64_EVEX_PUSH2_TABLE:
> +    case USE_X86_64_EVEX_POP2_TABLE:
> +	ins->evex_type = evex_push2_pop2;
> +      unsigned int vvvv_reg = ins->vex.register_specifier
> +			      | !ins->vex.v << 4;
> +      unsigned int rm_reg = ins->modrm.rm + (ins->rex & REX_B ? 8 : 0)
> +			    + (ins->rex2 & REX_B ? 16 : 0);
> +      if (!ins->vex.b || vvvv_reg == 0x4 || rm_reg == 0x4
> +	  || (dp->op[0].bytemode == USE_X86_64_EVEX_POP2_TABLE
> +	      && vvvv_reg == rm_reg))
> +	  return &bad_opcode;
> +      goto use_x86_64_table;

I don't think this is the way to handle such restrictions. Since this
likely can't very well be handled in existing operand handlers, so far
the approach was to introduce new ...Fixup() ones. That'll also
produce more helpful output, e.g. "push2 (bad)", rather than ".byte ..."
with no hint at approximately what insn this was. New USE_..._TABLE
should imo really only appear when truly new tables are introduced.

>      case USE_X86_64_EVEX_FROM_VEX_TABLE:
>        ins->evex_type = evex_from_vex;
>        /* Fall through.  */
>      case USE_X86_64_TABLE:
> +use_x86_64_table:

While this is going to go away with the comment above, as a general
remark: Within a switch(), please align labels used by "goto" from one
case to another with the adjacent case label(s). Elsewhere, for
"diff -p", please indent labels by at least one blank.

> @@ -9570,7 +9606,8 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
>  	  /* Check whether rounding control was enabled for an insn not
>  	     supporting it.  */
>  	  if (ins.modrm.mod == 3 && ins.vex.b
> -	      && !(ins.evex_used & EVEX_b_used))
> +	      && !(ins.evex_used & EVEX_b_used)
> +	      && ins.evex_type != evex_push2_pop2)
>  	    {

Looks like addressing a comment on an earlier patch will render this
change (and hence the new evex_push2_pop2 enumerator) unnecessary. If
not, I'd ask whether you wouldn't better set EVEX_b_used at an
appropriate point.

> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -3555,3 +3555,9 @@ eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
>  
>  // FRED instructions end.
>  
> +// APX Push2/Pop2 instruction.
> +
> +push2, 0xff/6, APX_F|x64, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +push2p, 0xff/6, APX_F|x64, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +pop2, 0x8f/0, APX_F|x64, Modrm|VexW0|EVex128|Push2Pop2|SwapSources|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +pop2p, 0x8f/0, APX_F|x64, Modrm|VexW1|EVex128|Push2Pop2|SwapSources|EVexMap4|VexVVVV|No_bSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }

Missing No_wSuf in all 4 entries?

As to the suffixing 'p' - may I ask in how far that's aligned with other
assemblers? The doc doesn't even give a hint as to what mnemonic
representation should be used (personally I had been taking .x into
consideration). Furthermore the earlier REX2 patch also didn't deal with
the PPX functionality for PUSH/POP, unless I missed something.

Jan

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

* Re: [PATCH 7/8] Support APX NF
  2023-09-19 15:25 ` [PATCH 7/8] Support APX NF Cui, Lili
  2023-09-25  6:07   ` Jan Beulich
@ 2023-09-28 12:42   ` Jan Beulich
  2023-11-02 10:15     ` Cui, Lili
  1 sibling, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-28 12:42 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> @@ -4178,11 +4180,15 @@ build_evex_insns_with_extend_evex_prefix (void)
>      i.vex.bytes[1] &= 0xef;
>    if (i.vex.register_specifier
>        && register_number (i.vex.register_specifier) > 0xf)
> -    i.vex.bytes[3] &=0xf7;
> +    i.vex.bytes[3] &= 0xf7;

When you notice such issues, they want correcting in the patch introducing
them.

> @@ -5944,6 +5954,10 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
>  		  /* {rex2} */
>  		  i.rex2_encoding = true;
>  		  break;
> +		case Prefix_NF:
> +		  /* {NF} */
> +		  i.has_nf = true;
> +		  break;

I find it odd that this is represented as a (pseudo-)prefix. The manual
doesn't suggest so; it rather looks like the intention is for it to be a
mnemonic suffix, as in "add{nf} ...". Hence same question as before: In
how far is this representation aligned with what other assemblers are
going to do?

> @@ -7151,6 +7165,19 @@ optimize_NDD_to_nonNDD (const insn_template *t)

How useful that this function is mentioned at least this way: No change
there? (See my comments on the patch introducing it.)

>    return 0;
>  }
>  
> +/* Check if NF prefix requirements are met by the instruction.  */
> +static int

As before, bool please for functions returning boolean values.

> +check_NfPrefix (const insn_template *t)
> +{
> +  if (i.has_nf && !t->opcode_modifier.nf)
> +    {
> +      /* This instruction should support nf prefix.  */
> +      i.error = unsupported;

A more specific error message would be nice here.

Question of course is whether, for such an isolated check, you really
need a new helper function.

> @@ -7551,6 +7578,7 @@ match_template (char mnem_suffix)
>  		  goto check_operands_345;
>  		}
>  	      else if (t->opcode_space != SPACE_BASE
> +		       && !t->opcode_modifier.nf
>  		       && (t->opcode_space != SPACE_0F
>  			   /* MOV to/from CR/DR/TR, as an exception, follow
>  			      the base opcode space encoding model.  */

With an earlier comment addressed, I expect this change may not be
necessary anymore.

> @@ -7652,6 +7680,13 @@ match_template (char mnem_suffix)
>  	  continue;
>  	}
>  
> +      /* Check if nf prefix are valid.  */
> +      if (check_NfPrefix (t))
> +	{
> +	  specific_error = progress (i.error);
> +	  continue;
> +	}

Is it helpful (e.g. diagnostic-wise) to have this check so late? If so,
is it useful to "continue" when this is the only thing that doesn't match?
No other template is going to match in such an event, afaict.

> --- a/gas/testsuite/gas/i386/x86-64-apx-ndd.d
> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.d
> @@ -158,7 +158,7 @@ Disassembly of section .text:
>  \s*[a-f0-9]+:\s*67 62 f4 3c 18 4f 90 90 90 90 90 	cmovg  -0x6f6f6f70\(%eax\),%edx,%r8d
>  \s*[a-f0-9]+:\s*67 62 f4 3c 18 af 90 09 09 09 00 	imul   0x90909\(%eax\),%edx,%r8d
>  \s*[a-f0-9]+:\s*62 b4 b0 10 af 94 f8 09 09 00 00 	imul   0x909\(%rax,%r31,8\),%rdx,%r25
> -\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+inc    %rax
> +\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+\{evex\} inc %rax

It's kind of unexpected to see this change here.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-nf.s
> @@ -0,0 +1,1256 @@
> +# Check 64bit APX_F instructions
> +
> +        .text
> +_start:
> +	{nf}	add	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX

Comments on earlier patches apply throughout this file as well.

> +	{nf}	add	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	addb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	addb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	addw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	addw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	addl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	addl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	addq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	addq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%bl, %dl, %r8b	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%bl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%bl, 291(%r8, %rax, 4), %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	%r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	291(%r8, %rax, 4), %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	add	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	add	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	$123, %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	$123, %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	$123, %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	$123, %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	$123, %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	$123, %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	$123, %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	$123, %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	andb	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	andb	$123, 291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	andw	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	andw	$123, 291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	andl	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	andl	$123, 291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	andq	$123, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	andq	$123, 291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%bl, %dl, %r8b	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%bl, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%bl, 291(%r8, %rax, 4), %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%dx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%dx, 291(%r8, %rax, 4), %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%ecx, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	%r9, 291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	291(%r8, %rax, 4), %bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	and	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	and	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	andn	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	andn	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	andn	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	andn	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bextr	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bextr	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bextr	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bextr	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsi	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsi	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsi	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsi	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsmsk	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsmsk	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsmsk	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsmsk	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsr	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsr	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsr	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	blsr	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bzhi	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bzhi	%ecx, 291(%r8, %rax, 4), %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bzhi	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	bzhi	%r9, 291(%r8, %rax, 4), %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	dec	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	dec	%bl, %dl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	dec	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	dec	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	dec	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	dec	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	dec	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	dec	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	decb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	decb	291(%r8, %rax, 4), %bl	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	decw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	decw	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	decl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	decl	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	decq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	decq	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	div	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	div	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	div	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	div	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	divb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	divw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	divl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	divq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idiv	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idiv	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idiv	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idiv	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idivb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idivw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idivl	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	idivq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%bl	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%dx, %ax, %r9w	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	imul	%ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%ecx, %edx, %r10d	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	imul	%r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	%r9, %r31, %r11	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	imulb	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imulw	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	291(%r8, %rax, 4), %dx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	291(%r8, %rax, 4), %dx, %ax	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	imull	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	291(%r8, %rax, 4), %ecx	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	291(%r8, %rax, 4), %ecx, %edx	 #APX_F OPC_EVEX_NF OPC_EVEX_ND
> +	{nf}	imulq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF OPC_EVEX_EVEX
> +	{nf}	imul	291(%r8, %rax, 4), %r9, %r31	 #APX_F OPC_EVEX_NF OPC_EVEX_ND

No IMUL by immediate?

> --- a/gas/testsuite/gas/i386/x86-64.exp
> +++ b/gas/testsuite/gas/i386/x86-64.exp
> @@ -372,6 +372,8 @@ run_dump_test "x86-64-apx-evex-promoted"
>  run_dump_test "x86-64-apx-evex-promoted-intel"
>  run_dump_test "x86-64-apx-evex-egpr"
>  run_dump_test "x86-64-apx-ndd"
> +run_dump_test "x86-64-apx-nf"
> +run_dump_test "x86-64-apx-nf-intel"
>  run_dump_test "x86-64-avx512f-rcigrz-intel"
>  run_dump_test "x86-64-avx512f-rcigrz"
>  run_dump_test "x86-64-clwb"

No test checking that {nf} isn't accepted (assembler) / EVEX.nf set is
rejected (disassembler) on insns not permitting its use, at least for a
few examples?

> @@ -1003,7 +1007,7 @@ typedef struct insn_template
>       AMD 3DNow! instructions.
>       If this template has no extension opcode (the usual case) use None
>       Instructions */
> -  signed int extension_opcode:0xA;
> +  signed int extension_opcode:0xB;

For this and ...

> @@ -1017,7 +1021,8 @@ typedef struct insn_template
>  #define Prefix_EVEX		7	/* {evex} */
>  #define Prefix_REX		8	/* {rex} */
>  #define Prefix_REX2		9	/* {rex2} */
> -#define Prefix_NoOptimize	0xA	/* {nooptimize} */
> +#define Prefix_NF		0xA	/* {nf} */
> +#define Prefix_NoOptimize	0xB	/* {nooptimize} */

... this, see comments on an earlier patch.

> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -286,25 +286,41 @@ add, 0x0, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg3
>  add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
>  add, 0x4, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
>  add, 0x80/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> -add, 0x0, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
> -add, 0x83/0, APX_F|x64, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> -add, 0x80/0, APX_F|x64, W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
> +
> +add, 0x0, APX_F|x64, D|W|CheckOperandSize|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
> +add, 0x83/0, APX_F|x64, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> +add, 0x80/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }

Huge patches like this are already hard enough to review. Can you please try to
make sure you introduce new templates right in their final shape (within the
specific series of course), rather than touching them again a 2nd time? Even
without fully supporting NF, introducing the attribute (as a dummy or without
any consumer) ought to be possible earlier on.

As per earlier comments many of these templates need cleaning up anyway, so I
won't look at the other in any detail here, and instead wait for a v2.

Jan

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

* Re: [PATCH 8/8] Support APX JMPABS
  2023-09-19 15:25 ` [PATCH 8/8] Support APX JMPABS Cui, Lili
@ 2023-09-28 13:11   ` Jan Beulich
  2023-11-02  2:32     ` Hu, Lin1
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-09-28 13:11 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, Hu, Lin1, binutils

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -3880,6 +3880,7 @@ is_any_apx_encoding (void)
>      || i.tm.opcode_space == SPACE_EVEXMAP4
>      || i.has_nf
>      || i.has_zero_upper
> +    || i.tm.mnem_off == MN_jmpabs
>      || (i.vex.register_specifier
>  	&& i.vex.register_specifier->reg_flags & RegRex2);
>  }
> @@ -3887,7 +3888,8 @@ is_any_apx_encoding (void)
>  static INLINE bool
>  is_any_apx_rex2_encoding (void)
>  {
> -  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;
> +  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding
> +	  || i.tm.mnem_off == MN_jmpabs;
>  }

These are getting both too complex for my taste, when they - iirc - sit
on a relatively common (and hence hot) path.

> @@ -7703,7 +7705,7 @@ match_template (char mnem_suffix)
>    if (!quiet_warnings)
>      {
>        if (!intel_syntax
> -	  && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE)))
> +	  && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE) && t->mnem_off != MN_jmpabs))

Nit: Too long line. But - does this need changing? JMPABS isn't an
indirect jump.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/apx-mov-inval.l
> @@ -0,0 +1,2 @@
> +.* Assembler messages:
> +.*:5: Error: unsupport rex2 pseudo prefix for `mov'

What is this new file doing here, entirely in isolation?

> @@ -2057,7 +2061,7 @@ static const struct dis386 dis386[] = {
>    { "lahf",		{ XX }, 0 },
>    /* a0 */
>    { "mov%LB",		{ AL, Ob }, 0 },
> -  { "mov%LS",		{ eAX, Ov }, 0 },
> +  { "mov%LS",		{ { JMPABS_Fixup, eAX_reg }, { JMPABS_Fixup, v_mode } }, 0 },
>    { "mov%LB",		{ Ob, AL }, 0 },
>    { "mov%LS",		{ Ov, eAX }, 0 },
>    { "movs{b|}",		{ Ybr, Xb }, 0 },
> @@ -9690,6 +9694,15 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
>        goto out;
>      }
>  
> +  if (ins.jmpabs
> +      && ((ins.prefixes & (PREFIX_OPCODE | PREFIX_ADDR)) != 0x0
> +	  || (ins.rex2_payload & 0x8) != 0x0))
> +    {
> +      i386_dis_printf (info, dis_style_text, "(bad)");
> +      ret = ins.end_codep - priv.the_buffer;
> +      goto out;
> +    }

Why can't this be dealt with in JMPABS_Fixup()?

> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -161,7 +161,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, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
> +mov, 0xa0, x64, D|W|CheckOperandSize|No_sSuf|No_egpr, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }

Isn't this (and perhaps more) needed already earlier? And can't
that be generalized to treating egpr as invalid for everything that
doesn't have Modrm?

>  movabs, 0xa0, x64, D|W|CheckOperandSize|No_sSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }

Plus, why would this one not need a similar adjustment?

Jan

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

* RE: [PATCH 1/8] Support APX GPR32 with rex2 prefix
  2023-09-28  8:02       ` Jan Beulich
@ 2023-10-07  3:27         ` Cui, Lili
  0 siblings, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-10-07  3:27 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> >> I don't think "ignored" is what you mean, considering ...
> >>
> >>>      /* MOD_0FAE_REG_5 */
> >>> -    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE },
> >>> +    { "xrstor",		{ FXSAVE }, PREFIX_OPCODE |
> >> PREFIX_IGNORED_REX2 },
> >>>      { PREFIX_TABLE (PREFIX_0FAE_REG_5_MOD_3) },
> >>>    },
> >>
> >> ... these uses here.
> >>
> >
> > Replaced " PREFIX_IGNORED_REX2" with "ILLEGAL_PREFIX_REX2 ".
> 
> May I ask that we keep PREFIX_ first, i.e. PREFIX_ILLEGAL_REX2 (or
> PREFIX_REX2_ILLEGAL)?
> 
Well, I prefer PREFIX_REX2_ILLEGAL.

> > Finally, thank you for checking these large patches so carefully. The next few
> days are China's national holidays, which last about 8 days, my feedback time
> will be longer. Thank you.
> 
> Oh, that fits nicely with me taking vacation the next two weeks.
> 

Glad to hear that and have a good vacation!

Lili.



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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-09-22 10:12   ` Jan Beulich
@ 2023-10-17 15:48     ` Cui, Lili
  2023-10-18  6:40       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-17 15:48 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

[-- Attachment #1: Type: text/plain, Size: 17517 bytes --]

> On 19.09.2023 17:25, Cui, Lili wrote:

> > --- a/gas/config/tc-i386.c

> > +++ b/gas/config/tc-i386.c

> > @@ -1945,6 +1945,30 @@ cpu_flags_match (const insn_template *t)

> >                         && (!x.bitfield.cpuvpclmulqdq ||

> cpu.bitfield.cpuvpclmulqdq))

> >                       match |= CPU_FLAGS_ARCH_MATCH;

> >             }

> > +        else if (x.bitfield.cpuapx_f)

> > +          {

> > +            if (cpu.bitfield.cpuapx_f

> > +                      && (!x.bitfield.cpumovbe || cpu.bitfield.cpumovbe)

> > +                      && (!x.bitfield.cpuept || cpu.bitfield.cpuept)

> > +                      && (!x.bitfield.cpuinvpcid || cpu.bitfield.cpuinvpcid)

> > +                      && (!x.bitfield.cpusse4_2 || cpu.bitfield.cpusse4_2)

> > +                      && (!x.bitfield.cpubmi2 || cpu.bitfield.cpubmi2)

> > +                      && (!x.bitfield.cpubmi || cpu.bitfield.cpubmi)

> > +                      && (!x.bitfield.cpuadx || cpu.bitfield.cpuadx)

> > +                      && (!x.bitfield.cpusha || cpu.bitfield.cpusha)

> > +                      && (!x.bitfield.cpuavx512bw || cpu.bitfield.cpuavx512bw)

> > +                      && (!x.bitfield.cpuavx512dq || cpu.bitfield.cpuavx512dq)

> > +                      && (!x.bitfield.cpuavx512f || cpu.bitfield.cpuavx512f)

> > +                      && (!x.bitfield.cpushstk || cpu.bitfield.cpushstk)

> > +                      && (!x.bitfield.cpumovdir64b || cpu.bitfield.cpumovdir64b)

> > +                      && (!x.bitfield.cpumovdiri || cpu.bitfield.cpumovdiri)

> > +                      && (!x.bitfield.cpuenqcmd || cpu.bitfield.cpuenqcmd)

> > +                      && (!x.bitfield.cpukl || cpu.bitfield.cpukl)

> > +                      && (!x.bitfield.cpuwidekl || cpu.bitfield.cpuwidekl)

> > +                      && (!x.bitfield.cpucmpccxadd || cpu.bitfield.cpucmpccxadd)

> > +                      && (!x.bitfield.cpurao_int || cpu.bitfield.cpurao_int))

> > +                    match |= CPU_FLAGS_ARCH_MATCH;

> > +          }

> >           else

> >             match |= CPU_FLAGS_ARCH_MATCH;

> >

>

> This is getting unwieldy, so I think we will need to think of a better way of

> expressing both "multiple ISAs need to be enabled" and "one of a set of ISAs

> needs to be enabled". It's only the mix of these expressed in a uniform way in

> the insn table that requires these extra conditionals. With the size of

> i386_cpu_attr greatly shrunk as of recently, I wonder if we couldn't simply add

> a 2nd instance of it to insn_template. One would be "all of these are required",

> while the other would be "any one of these is sufficient".

>



I didn't find a better way to distinguish these two types of requirements in insn_template.

I wrote a new function "cpu_flags_not_or_check" to replace these clumsy judgments.



static INLINE int

cpu_flags_not_or_check (const union i386_cpu_flags *x,

                        const union i386_cpu_flags *y)

{

  switch (ARRAY_SIZE(x->array))

    {

    case 5:

      if ((~x->array[4] | y->array[4]) != 0xffffffff)

        return 0;

      /* Fall through.  */

    case 4:

      if ((~x->array[3] | y->array[3]) != 0xffffffff)

        return 0;

      /* Fall through.  */

    case 3:

      if ((~x->array[2] | y->array[2]) != 0xffffffff)

        return 0;

      /* Fall through.  */

    case 2:

      if ((~x->array[1] | y->array[1]) != 0xffffffff)

        return 0;

      /* Fall through.  */

    case 1:

     return ((~x->array[1] | y->array[1]) == 0Xffffffff);

      break;

    default:

      abort ();

    }

}



> > @@ -3850,7 +3874,10 @@ is_any_vex_encoding (const insn_template *t)

> > static INLINE bool  is_any_apx_encoding (void)  {

> > -  return i.rex2 || i.rex2_encoding;

> > +  return i.rex2

> > +    || i.rex2_encoding

> > +    || (i.vex.register_specifier

> > +      && i.vex.register_specifier->reg_flags & RegRex2);

>

> Nit: For readability as well as for consistency this wants indenting

> differently:

>

>   return i.rex2

>             || i.rex2_encoding

>             || (i.vex.register_specifier

>                 && i.vex.register_specifier->reg_flags & RegRex2);

>

> or possibly (slightly shorter)

>

>   return i.rex2 || i.rex2_encoding

>             || (i.vex.register_specifier

>                 && i.vex.register_specifier->reg_flags & RegRex2);

>

> In any event you want to avoid trailing blanks on any line.

>



Done.



> > @@ -3859,6 +3886,12 @@ is_any_apx_rex2_encoding (void)

> >    return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;  }

> >

> > +static INLINE bool

> > +is_any_apx_evex_encoding (void)

> > +{

> > +  return i.rex2 && i.vex.length == 4; }

>

> This doesn't feel right: {evex} use would demand this encoding even if

> i.rex2 is still zero.

>

> Also - what is "any" in the name (also of the earlier predicate) intending to

> express? is_any_vex_encoding() is named the way it is because it covers both

> VEX and EVEX.

>



Yes, you are right, I found  this feature is redundant. It is only used in output_insn, see below, evex encoding is already included in is_any_vex_encoding(&i.tm) (since we added EVEX128 for all EVEX-promoted instruction in insn template), I removed this function.



if (!is_any_vex_encoding (&i.tm) && !is_any_apx_evex_encoding ())



> > @@ -4129,6 +4162,50 @@ build_rex2_prefix (void)

> >                           | (i.rex2 << 4) | i.rex);

> >  }

> >

> > +/* Build the EVEX prefix (4-byte) for evex insn

> > +   | 62h |

> > +   | `R`X`B`R' | B'mmm |

> > +   | W | v`v`v`v | `x' | pp |

> > +   | z| L'L | b | `v | aaa |

> > +*/

> > +static void

> > +build_evex_insns_with_extend_evex_prefix (void)

>

> The name is somewhat odd and doesn't fit that of other similar functions.

> In particular this function doesn't build an entire insn, but still just the prefix.

> So perhaps build_apx_evex_prefix()?

>



It is better, replaced.



> > +{

> > +  build_evex_prefix ();

> > +  if (i.rex2 & REX_R)

> > +    &= 0xef;

> > +  if (i.vex.register_specifier

> > +      && register_number (i.vex.register_specifier) > 0xf)

> > +    i.vex.bytes[3] &=0xf7;

>

> Nit: Missing blank.

>

> But: Is this needed? Doesn't build_evex_prefix() fill this bit already, which isn't

> new in APX?

>



V4 is used for vector register In build_evex_prefix(), we need to update V4 with GPR32.



      /* The upper 16 registers are encoded in the fourth byte of the

         EVEX prefix.  */

      if (!(i.vex.register_specifier->reg_flags & RegVRex))

        i.vex.bytes[3] = 0x8;



> > +  if (i.rex2 & REX_B)

> > +    i.vex.bytes[1] |= 0x08;

> > +  if (i.rex2 & REX_X)

> > +    i.vex.bytes[2] &= 0xfb;

> > +}

> > +

> > +/* Build the EVEX prefix (4-byte) for legacy insn

> > +   | 62h |

> > +   | `R`X`B`R' | B'100 |

> > +   | W | v`v`v`v | `x' | pp |

> > +   | 000 | ND | `v | NF | 00 |

> > +   For legacy insn without ndd nor nf, [vvvvv] must be all zero.  */

> > +static void build_legacy_insns_with_apx_encoding (void)

>

> As per above, maybe build_extended_evex_prefix()? Or, ...

>

> > +{

> > +  /* map{0,1} of legacy space without ndd or nf could use rex2

> > +prefix.  */

> > +  if (i.tm.opcode_space <= SPACE_0F

> > +      && !i.vex.register_specifier && !i.has_nf && !i.has_zero_upper)

> > +    return build_rex2_prefix ();

>

> ... because of this, build_apx_prefix()? Yet I think the call to this function might

> better remain in the caller.

>



I deleted this function, since we handle rex2 following rex, and handle others following VEX and EVEX.



> > +  if (i.prefix[DATA_PREFIX] != 0)

> > +    {

> > +      i.tm.opcode_modifier.opcodeprefix = PREFIX_0X66;

> > +      i.prefix[DATA_PREFIX] = 0;

> > +    }

>

> While this looks to be correct for the case when the prefix was derived from an

> insn template and the use of 16-bit operands, I don't think it is uniformly

> correct when "data16" was used as a prefix explicitly. In such a case either

> REX2 encoding needs to be used, or an error needs emitting.

>

> You may further want to assert that i.tm.opcode_modifier.opcodeprefix is still

> zero ahead of the assignment.

>



For REX2 encoding, we add no special handling, just follow REX.

For EVEX-promoted encoding, such as “data16 aand   %r25d,0x123(%r31,%rax,4)”, the following existing code will report an error.



  if (is_any_vex_encoding (&i.tm)

      || i.tm.operand_types[i.imm_operands].bitfield.class >= RegMMX

      || i.tm.operand_types[i.imm_operands + 1].bitfield.class >= RegMMX)

    {

      /* Check for data size prefix on VEX/XOP/EVEX encoded and SIMD insns.  */

      if (i.prefix[DATA_PREFIX])

        {

          as_bad (_("data size prefix invalid with `%s'"), insn_name (&i.tm));

          return;

        }



> > @@ -10057,7 +10136,7 @@ output_insn (void)

> >

> >        /* Since the VEX/EVEX prefix contains the implicit prefix, we

> >          don't need the explicit prefix.  */

> > -      if (!is_any_vex_encoding (&i.tm))

> > +      if (!is_any_vex_encoding (&i.tm) && !is_any_apx_evex_encoding

> > + ())

> >         {

> >           switch (i.tm.opcode_modifier.opcodeprefix)

>

> I'm not convinced the use of this predicate is appropriate here. I'd generally

> have expected is_any_vex_encoding() to be extended to also detect all cases

> of EVEX encodings in APX.



Removed this function, as mentioned before, evex encoding is already included in is_any_vex_encoding(&i.tm) (since we added EVEX128 for all EVEX-promoted instruction in insn template).



>

> > --- a/opcodes/i386-dis-evex-len.h

> > +++ b/opcodes/i386-dis-evex-len.h

>

> As for the earlier patch, I'll look at the disassembler changes separately.

>

> > @@ -1121,6 +1122,15 @@ process_i386_opcode_modifier (FILE *table,

> char *mod, unsigned int space,

> >         fprintf (stderr,

> >                        "%s: %d: W modifier without Word/Dword/Qword

> operand(s)\n",

> >                        filename, lineno);

> > +      if (modifiers[Vex].value

> > +        || (space > SPACE_0F

> > +            && !(space == SPACE_EVEXMAP4

> > +                       || modifiers[EVex].value

> > +                       || modifiers[Disp8MemShift].value

> > +                       || modifiers[Broadcast].value

> > +                       || modifiers[Masking].value

> > +                       || modifiers[SAE].value)))

>

> First of all, this wants simplifying to

>

>       if (modifiers[Vex].value

>              || (space > SPACE_0F

>                  && space != SPACE_EVEXMAP4

>                  && !modifiers[EVex].value

>                  && !modifiers[Disp8MemShift].value

>                  && !modifiers[Broadcast].value

>                  && !modifiers[Masking].value

>                  && !modifiers[SAE].value))

>

> which helps readability and makes more obvious that this parallels tc-

> i386.c:is_evex_encoding(). Such a connection, where updates need to be

> made in sync, needs pointing out in code comments at both sites.

>



Done.



> Yet of course this condition won't hold anymore for combined VEX/EVEX

> templates.

>



I rebased master and as you predicted this doesn't work, one entry contains both VEX and EVEX, VEX requires No_egpr=1 and EVEX requires No_egpr=0,

Finally I chose to add "No_egpr=1" for it. And added the following judgment in check_EgprOperands.



check_EgprOperands (const insn_template *t)

{

-  if (t->opcode_modifier.noegpr)

if (t->opcode_modifier.noegpr && !need_evex_encoding())



> > +      modifiers[No_egpr].value = 1;

> >      }

>

> And then - shouldn't at least part of this already be put in place in patch 1?

>



Done in patch 1.



> Finally, to avoid the split between where this attribute gets set, wouldn't it be

> possible to also handle the XSAVE/XRSTOR variants here rather than directly in

> the opcode table?

>



Done in patch 1.



> > @@ -187,6 +188,7 @@ mov, 0xf24, i386|No64,

> > D|RegMem|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf, { Te

> >

> >  // Move after swapping the bytes

> >  movbe, 0x0f38f0, Movbe,

> D|Modrm|CheckOperandSize|No_bSuf|No_sSuf, {

> > Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }

> > +movbe, 0x60, Movbe|APX_F|x64,

> > +D|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4, {

> > +Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex,

> > +Reg16|Reg32|Reg64 }

>

> In new code please omit redundant Word, Dword, and alike.

>



Done.



> I further wonder if it wouldn't help if i386-gen inserted the x64 for all APX

> templates, rather than open-coding that on every single template.

> Or alternatively put

>

> #define APX_F APX_F|x64

>

> earlier in the file.

>



Done.



> > @@ -300,6 +302,9 @@ sbb, 0x18, 0,

> >

> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseInd

> ex }

> > +not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, {

> >

> +Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIn

> dex }

>

> Looking at just the additions up to here, I'm getting the impression that in this

> patch - despite its title - you only add non-ND, non-NF insn forms for

> previously non-VEX-encoded insns. This could do with clarifying, by both

> making the title more concise and by stating the exact scope of the work done

> in the description.

>



Done.



> > @@ -1312,13 +1330,16 @@ getsec, 0xf37, SMX, NoSuf, {}

> >

> >  invept, 0x660f3880, EPT|No64, Modrm|IgnoreSize|NoSuf, {

> > Oword|Unspecified|BaseIndex, Reg32 }  invept, 0x660f3880, EPT|x64,

> > Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }

> > +invept, 0xf3f0, APX_F|EPT|x64,

> Modrm|NoSuf|NoRex64|EVex128|EVexMap4,

> > +{ Oword|Unspecified|BaseIndex, Reg64 }

> >  invvpid, 0x660f3881, EPT|No64, Modrm|IgnoreSize|NoSuf, {

> > Oword|Unspecified|BaseIndex, Reg32 }  invvpid, 0x660f3881, EPT|x64,

> > Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }

> > +invvpid, 0xf3f1, APX_F|EPT|x64,

> Modrm|NoSuf|NoRex64|EVex128|EVexMap4,

> > +{ Oword|Unspecified|BaseIndex, Reg64 }

> >

> >  // INVPCID instruction

> >

> >  invpcid, 0x660f3882, INVPCID|No64, Modrm|IgnoreSize|NoSuf, {

> > Oword|Unspecified|BaseIndex, Reg32 }  invpcid, 0x660f3882,

> > INVPCID|x64, Modrm|NoSuf|NoRex64, { Oword|Unspecified|BaseIndex,

> Reg64

> > }

> > +invpcid, 0xf3f2, APX_F|INVPCID|x64,

> > +Modrm|NoSuf|NoRex64|EVex128|EVexMap4,

> { Oword|Unspecified|BaseIndex,

> > +Reg64 }

>

> I don't think NoRex64 belongs in any EVEX template.

>



Removed it from APX_F EVEX template.



> >  crc32, 0xf20f38f0, SSE4_2|x64, W|Modrm|No_wSuf|No_lSuf|No_sSuf, {

> > Reg8|Reg64|Unspecified|BaseIndex, Reg64 }

> > +crc32, 0xf0, APX_F|x64,

> > +W|Modrm|No_wSuf|No_lSuf|No_sSuf|EVex128|EVexMap4, {

> > +Reg8|Reg64|Unspecified|BaseIndex, Reg64 }

>

> There's quite a bit of logic in tc-i386.c to get CRC32 right. I wonder if you can

> really get away without adjusting that logic to also take effect on the EVEX

> encodings.

>



Thanks for reminding, checked crc32 logic in tc-i386.c, it mainly focuses on base_opcode and i.rex W bit, for base_opcode part we can , for i.rex.w bit, we need apply it to evex.w bit,

For crc32 case we use else and APX_F only supports 64 bit mode, it can make sure we use i.rex & REX_W for evex.w.  and added some new test case to make sure encode is right.



Thanks for the reminder. I checked the crc32 logic in tc-i386.c, mainly focusing on the base_opcode and i.rex W bits. For the base_opcode part, we can inherit it. For the i.rex.w bit, we need to apply it to the evex.w bit. ,

For the following code in build_evex_prefix(), crc32 takes the else branch and APX_F only supports 64 bit mode, it can ensures we use i.rex.w for evex.w.  And added some new test cases to ensure correct encoding.



  /* Check the REX.W bit and VEXW.  */

  if (i.tm.opcode_modifier.vexw == VEXWIG)

    w = (evexwig == evexw1 || (i.rex & REX_W)) ? 1 : 0;

  else if (i.tm.opcode_modifier.vexw)

    w = i.tm.opcode_modifier.vexw == VEXW1 ? 1 : 0;

  else

    w = (flag_code == CODE_64BIT ? i.rex & REX_W : evexwig == evexw1) ? 1 : 0;



+      crc32q  %r31, %r22

+      crc32q  (%r31), %r22

+      crc32b  %r19b, %r17

+      crc32b  %r19b, %r21d

+      crc32b (%r19),%ebx

+      crc32l  %r31d, %r23d

+      crc32l  (%r31), %r23d

+      crc32w  %r31w, %r21d

+      crc32w (%r31),%r21d

+      crc32   %rax, %r18

> > @@ -3408,3 +3487,4 @@ erets, 0xf20f01ca, FRED|x64, NoSuf, {}  eretu,

> > 0xf30f01ca, FRED|x64, NoSuf, {}

> >

> >  // FRED instructions end.

> > +

>

> Nit: Stray change.



Done.



Thanks,

Lili.

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-09-22 10:50   ` Jan Beulich
@ 2023-10-17 15:50     ` Cui, Lili
  2023-10-17 16:11       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-17 15:50 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> > --- a/opcodes/i386-dis-evex-mod.h
> > +++ b/opcodes/i386-dis-evex-mod.h
> > @@ -1 +1,51 @@
> >  /* Nothing at present.  */
> > +  /* MOD_EVEX_MAP4_65 */
> > +  {
> > +    { "wrussK",		{ M, Gdq }, PREFIX_DATA },
> > +  },
> > +  /* MOD_EVEX_MAP4_66_PREFIX_0 */
> > +  {
> > +    { "wrssK",		{ M, Gdq }, 0 },
> > +  },
> 
> Not very long ago I invested quite a bit of time to remove unnecessary
> decoding through mod_table[]. Please don't introduce new instances.
> Entries should be added here only when both branches are populated (iow it
> looks as if this patch shouldn't touch this file at all).
> 

Done.

> > +  /* PREFIX_EVEX_MAP4_60 */
> > +  {
> > +    { "movbeS",	{ Gv, Ev }, 0 },
> > +    { Bad_Opcode },
> > +    { "movbeS",	{ Gv, Ev }, 0 },
> > +  },
> > +  /* PREFIX_EVEX_MAP4_61 */
> > +  {
> > +    { "movbeS",	{ Ev, Gv }, 0 },
> > +    { Bad_Opcode },
> > +    { "movbeS",	{ Ev, Gv }, 0 },
> > +  },
> 
> In cases like this (of which, aiui, there will be many more), where only prefix
> 66 is valid, and only to modify operand size, it would be quite desirable to
> have a new PREFIX_... identifier to use in the parent table entry, such that this
> additional decode step can be avoided.
> 

Added PREFIX_DATA_AND_NP_ONLY to report bad for f2 and f3 prefix. Do you have a better name for the new PREFIX ?
Also added two bad.s test cases for it.

        #movbe %r18w,%ax set EVEX.pp = f3 (illegal value).
        .byte 0x62, 0xfc, 0x7e, 0x08, 0x60, 0xc2
        #movbe %r18w,%ax set EVEX.pp = f2 (illegal value).
        .byte 0x62, 0xfc, 0x7f, 0x08, 0x60, 0xc2

> > --- /dev/null
> > +++ b/opcodes/i386-dis-evex-x86.h
> 
> I'm puzzled by the name suffix: x86 is kind of redundant with i386. Main
> question perhaps is: Do we really need a new file here? It's not a lot that is
> put here right now, but of course I haven't peeked ahead.

I think it should be i386-dis-evex-x86-64.h. This table is dedicated to the VEX promotion instruction. It is placed at the end of x86_64_table and marked with ins->evex_type = evex_from_vex.
It can share partial tables with VEX after x86-64 table.

   case USE_X86_64_EVEX_FROM_VEX_TABLE:
      ins->evex_type = evex_from_vex;
      /* Fall through.  */
    case USE_X86_64_TABLE:
      vindex = ins->address_mode == mode_64bit ? 1 : 0;
      dp = &x86_64_table[dp->op[1].bytemode][vindex];
      break;

> > --- a/opcodes/i386-dis-evex.h
> > +++ b/opcodes/i386-dis-evex.h
> > @@ -164,10 +164,10 @@ static const struct dis386 evex_table[][256] = {
> >      /* F8 */
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> > @@ -854,7 +854,7 @@ static const struct dis386 evex_table[][256] = {
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> >      /* F0 */
> > -    { Bad_Opcode },
> > +    { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F3AF0) },
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> > @@ -872,7 +872,7 @@ static const struct dis386 evex_table[][256] = {
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> >    },
> > -  /* EVEX_MAP5_ */
> > +  /* EVEX_MAP4_ */
> 
> While just an artifact from this, ...
> 
> > @@ -893,8 +893,8 @@ static const struct dis386 evex_table[][256] = {
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> >      /* 10 */
> > -    { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
> > -    { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
> > +    { Bad_Opcode },
> > +    { Bad_Opcode },
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> > @@ -907,7 +907,7 @@ static const struct dis386 evex_table[][256] = {
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> > -    { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
> > +    { Bad_Opcode },
> >      { Bad_Opcode },
> >      { Bad_Opcode },
> >      /* 20 */
> 
> ... changes like these are extremely odd to read. Can you please try to split
> this patch such that initially you simply introduce an empty new sub-table, to
> avoid such anomalies (which will also affect "git blame" then, I expect)?
> 

Sure, it's a good suggestion. I had a hard time to resolve the conflict here,  done.

> > --- a/opcodes/i386-dis.c
> > +++ b/opcodes/i386-dis.c
> > @@ -132,6 +132,13 @@ enum x86_64_isa
> >    intel64
> >  };
> >
> > +enum evex_type
> > +{
> > +  evex_default = 0,
> > +  evex_from_legacy,
> > +  evex_from_vex,
> > +};
> > +
> >  struct instr_info
> >  {
> >    enum address_mode address_mode;
> > @@ -212,7 +219,6 @@ struct instr_info
> >      int ll;
> >      bool w;
> >      bool evex;
> > -    bool r;
> 
> The change to eliminate this field would certainly be nice to be separate from
> the bulk of thw APX changes here.
> 

Thanks,
Lili.

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-09-25  6:03   ` Jan Beulich
@ 2023-10-17 15:52     ` Cui, Lili
  2023-10-17 16:12       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-17 15:52 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> +Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseInde
> x }
> >
> >  neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, {
> >
> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex
> }
> > +
> >  not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, {
> >
> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex
> }
> > +not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, {
> >
> +Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseInde
> x }
> 
> I can't seem to be able to find the disassembly part for these. The reason I've
> noticed is because I was meaning to figure how you deal with EVEX.nf needing
> to be zero for those (and others). For that bit specifically I expect we want a
> new %NF macro, which would be used as !%NF when (bad) (or some such)
> wants printing instead of {nf}.
> 
Their disassembly part are putted in NDD patch, I'll move them here. 
For EVEX.nf, I added a new macro %XN to print bad for Non-NF instructions. As you can see in [PATCH 7/8] Support APX NF.

> Similary I don't think I can spot anywhere that you would check the other bits
> which need to be zero in extended EVEX. Nor Improper use of EVEX.x4 in
> certain pre-existing encodings (S/G insns at least; perhaps all others are okay).

Sorry, I can't get you here, what are S/G insns, could you provide more details here, thanks.

Lili.

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

* FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-09-27 13:11   ` Jan Beulich
@ 2023-10-17 15:53     ` Cui, Lili
  2023-10-17 16:19       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-17 15:53 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils


> > +	packusdw (%r21),%xmm6
> > +	pblendvb %xmm0,(%r22),%xmm6
> > +	pblendvb (%r22),%xmm6
> > +	pblendw $100,(%r22),%xmm6
> > +	pcmpeqq (%r22),%xmm6
> > +	pextrb $100,%xmm4,(%r22)
> > +	pextrw $100,%xmm4,(%r22)
> > +	pextrb $100,%xmm4,%r22
> 
> Would be nice to stick to strict alphabetic sorting.
> 

Done.

> > +	pextrd $100,%xmm4,%r22d
> > +	pextrd $100,%xmm4,(%r22)
> 
> pextrq?

Added.

> 
> > +	phminposuw (%r23),%xmm4
> > +	pinsrb $100,%r23,%xmm4
> > +	pinsrb $100,(%r23),%xmm4
> > +	pinsrd $100, %r23d, %xmm4
> > +	pinsrd $100,(%r23),%xmm4
> > +	pinsrq $100, %r24, %xmm4
> > +	pinsrq $100,(%r24),%xmm4
> > +	pmaxsb (%r24),%xmm6
> > +	pmaxsd (%r24),%xmm6
> > +	pmaxud (%r24),%xmm6
> > +	pmaxuw (%r24),%xmm6
> > +	pminsb (%r24),%xmm6
> > +	pminsd (%r24),%xmm6
> > +	pminud (%r24),%xmm6
> > +	pminuw (%r24),%xmm6
> > +	pmovsxbw (%r24),%xmm4
> > +	pmovsxbd (%r24),%xmm4
> > +	pmovsxbq (%r24),%xmm4
> > +	pmovsxwd (%r24),%xmm4
> > +	pmovsxwq (%r24),%xmm4
> > +	pmovsxdq (%r24),%xmm4
> > +	pmovsxbw (%r24),%xmm4
> > +	pmovzxbd (%r24),%xmm4
> > +	pmovzxbq (%r24),%xmm4
> > +	pmovzxwd (%r24),%xmm4
> > +	pmovzxwq (%r24),%xmm4
> > +	pmovzxdq (%r24),%xmm4
> > +	pmuldq (%r24),%xmm4
> > +	pmulld (%r24),%xmm4
> > +	roundpd $100,(%r24),%xmm6
> > +	roundps $100,(%r24),%xmm6
> > +	roundsd $100,(%r24),%xmm6
> > +	roundss $100,(%r24),%xmm6
> > +	pcmpgtq (%r25),%xmm4
> > +	pcmpestri $100,(%r25),%xmm6
> > +	pcmpestrm $100,(%r25),%xmm6
> > +	pcmpistri $100,(%r25),%xmm6
> > +	pcmpistrm $100,(%r25),%xmm6
> 
> For these last five - again would be nice to stick to strict alphabetic sorting.
> (I was almost going to as where pcmpeqq is.)
> 

Done.

> > +#AES
> > +	aesdec (%r26),%xmm6
> > +	aesdeclast (%r26),%xmm6
> > +	aesenc (%r26),%xmm6
> > +	aesenclast (%r26),%xmm6
> > +	aesimc (%r26),%xmm6
> > +	aeskeygenassist $100,(%r26),%xmm6
> > +	pclmulqdq $100,(%r26),%xmm6
> > +	pclmullqlqdq (%r26),%xmm6
> > +	pclmulhqlqdq (%r26),%xmm6
> > +	pclmullqhqdq (%r26),%xmm6
> > +	pclmulhqhqdq (%r26),%xmm6
> > +#GFNI
> > +	gf2p8affineqb $100,(%r26),%xmm6
> > +	gf2p8affineinvqb $100,(%r26),%xmm6
> > +	gf2p8mulb (%r26),%xmm6
> > +#VEX without evex
> > +	vblendpd $7,(%r27),%xmm6,%xmm2
> > +	vblendpd $7,(%r27),%ymm6,%ymm2
> > +	vblendps $7,(%r27),%xmm6,%xmm2
> > +	vblendps $7,(%r27),%ymm6,%ymm2
> > +	vblendvpd %xmm4,(%r27),%xmm2,%xmm7
> > +	vblendvpd %ymm4,(%r27),%ymm2,%ymm7
> > +	vblendvps %xmm4,(%r27),%xmm2,%xmm7
> > +	vblendvps %ymm4,(%r27),%ymm2,%ymm7
> > +	vdppd $7,(%r27),%xmm6,%xmm2
> > +	vdpps $7,(%r27),%xmm6,%xmm2
> > +	vdpps $7,(%r27),%ymm6,%ymm2
> > +	vhaddpd (%r27),%xmm6,%xmm5
> > +	vhaddpd (%r27),%ymm6,%ymm5
> > +	vhsubps (%r27),%xmm6,%xmm5
> > +	vhsubps (%r27),%ymm6,%ymm5
> > +	vlddqu (%r27),%xmm4
> > +	vlddqu (%r27),%ymm4
> > +	vldmxcsr (%r27)
> 
> Are the designers not intending to reconsider this (and vstmxcsr), getting on
> par with {ld,st}tilecfg? Even more generally I wonder if things shouldn't remain
> less inconsistent. After all most major opcodes haven't been re-used, so
> adding (less-than-512-bit) EVEX equivalents would only seem reasonable to
> me. I'll be really curious how this asymmetry is going to be dealt with in gcc, in
> a way still permitting sane inline assembly use.
> 

For the memory conditions listed here, we may not consider extending them, but for vstmxcsr and vldmxcsr,
I raised a topic for internal discussion. The conclusion is that when apx_f is enabled, gcc will select LDMXCSR/LDMXCSR.
In GCC, we control whether each instruction supports gpr32. GCC default configuration disables gpr32 support in the inline assembler, but users can enable it and need to make sure it is correct.

> > +	vmaskmovpd (%r27),%xmm4,%xmm6
> > +	vmaskmovpd %xmm4,%xmm6,(%r27)
> > +	vmaskmovps (%r27),%xmm4,%xmm6
> > +	vmaskmovps %xmm4,%xmm6,(%r27)
> > +	vmaskmovpd (%r27),%ymm4,%ymm6
> > +	vmaskmovpd %ymm4,%ymm6,(%r27)
> > +	vmaskmovps (%r27),%ymm4,%ymm6
> > +	vmaskmovps %ymm4,%ymm6,(%r27)
> > +	vmovmskpd %xmm4,%r27d
> > +	vmovmskpd %xmm8,%r27d
> > +	vmovmskps %xmm4,%r27d
> > +	vmovmskps %ymm8,%r27d
> > +	vpblendvb %xmm4,(%r27),%xmm2,%xmm7
> > +	vpblendvb %ymm4,(%r27),%ymm2,%ymm7
> > +	vpblendw $7,(%r27),%xmm6,%xmm2
> > +	vpblendw $7,(%r27),%ymm6,%ymm2
> > +	vpcmpestri $7,(%r27),%xmm6
> > +	vpcmpestrm $7,(%r27),%xmm6
> > +	vperm2f128 $7,(%r27),%ymm6,%ymm2
> > +	vphaddd (%r27),%xmm6,%xmm7
> > +	vphaddsw (%r27),%xmm6,%xmm7
> > +	vphaddw (%r27),%xmm6,%xmm7
> > +	vphsubd (%r27),%xmm6,%xmm7
> > +	vphsubsw (%r27),%xmm6,%xmm7
> > +	vphsubw (%r27),%xmm6,%xmm7
> > +	vphaddd (%r27),%ymm6,%ymm7
> > +	vphaddsw (%r27),%ymm6,%ymm7
> > +	vphaddw (%r27),%ymm6,%ymm7
> > +	vphsubd (%r27),%ymm6,%ymm7
> > +	vphsubsw (%r27),%ymm6,%ymm7
> > +	vphsubw (%r27),%ymm6,%ymm7
> > +	vphminposuw (%r27),%xmm6
> > +	vpmovmskb %xmm4,%r27
> > +	vpmovmskb %ymm4,%r27d
> > +	vpsignb (%r27),%xmm6,%xmm7
> > +	vpsignw (%r27),%xmm6,%xmm7
> > +	vpsignd (%r27),%xmm6,%xmm7
> > +	vpsignb (%r27),%xmm6,%xmm7
> > +	vpsignw (%r27),%xmm6,%xmm7
> > +	vpsignd (%r27),%xmm6,%xmm7
> > +	vptest (%r27),%xmm6
> > +	vptest (%r27),%ymm6
> > +	vrcpps (%r27),%xmm6
> > +	vrcpps (%r27),%ymm6
> > +	vrcpss (%r27),%xmm6,%xmm6
> > +	vrsqrtps (%r27),%xmm6
> > +	vrsqrtps (%r27),%ymm6
> > +	vrsqrtss (%r27),%xmm6,%xmm6
> > +	vstmxcsr (%r27)
> > +	vtestps (%r27),%xmm6
> > +	vtestps (%r27),%ymm6
> > +	vtestpd (%r27),%xmm6
> > +	vtestps (%r27),%ymm6
> > +	vtestpd (%r27),%ymm6
> > +	vpblendd $7,(%r27),%xmm6,%xmm2
> > +	vpblendd $7,(%r27),%ymm6,%ymm2
> > +	vperm2i128 $7,(%r27),%ymm6,%ymm2
> > +	vpmaskmovd (%r27),%xmm4,%xmm6
> > +	vpmaskmovd %xmm4,%xmm6,(%r27)
> > +	vpmaskmovq (%r27),%xmm4,%xmm6
> > +	vpmaskmovq %xmm4,%xmm6,(%r27)
> > +	vpmaskmovd (%r27),%ymm4,%ymm6
> > +	vpmaskmovd %ymm4,%ymm6,(%r27)
> > +	vpmaskmovq (%r27),%ymm4,%ymm6
> > +	vpmaskmovq %ymm4,%ymm6,(%r27)
> > +	vaesimc (%r27), %xmm3
> > +	vaeskeygenassist $7,(%r27),%xmm3
> > +	vroundpd $100,(%r24),%xmm6
> > +	vroundps $100,(%r24),%xmm6
> > +	vroundsd $100,(%r24),%xmm6,%xmm3
> > +	vroundss $100,(%r24),%xmm6,%xmm3
> 
> For these I wonder if they shouldn't be accepted (with in-range immediate)
> and converted to vrndscale*. Imo the spec could even mandate (or at least
> suggest) this.
> 

Changed it to 0x00 ~ 0x0f.

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
> > @@ -0,0 +1,18 @@
> > +# Check illegal 64bit APX EVEX promoted instructions
> > +	.text
> > +	.arch .apx_f
> 
> This doesn't have any effect (on this test), does it?
> 

Deleted.

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-egpr.s
> > @@ -0,0 +1,25 @@
> > +# Check 64bit old evex instructions use gpr32 with evex prefix
> > +encoding
> > +
> > +	.allow_index_reg
> > +	.text
> > +_start:
> > +## MRMDestMem
> > +         vextractf32x4	$1, %zmm0, (%r16,%r17)
> > +## MRMSrcMem
> > +         vbroadcasti32x4	(%r16,%r17), %zmm0
> > +## MRM0m
> > +         vprorq	$0, (%r16,%r17), %zmm0
> > +## MRM1m
> > +         vprolq	$0, (%r16,%r17), %zmm0
> > +## MRM2m
> > +         vpsrlq	$0, (%r16,%r17), %zmm0
> > +## MRM3m
> > +         vpsrldq	$0, (%r16,%r17), %zmm0
> > +## MRM4m
> > +         vpsraq	$0, (%r16,%r17), %zmm0
> > +## MRM6m
> > +         vpsllq	$0, (%r16,%r17), %zmm0
> > +## MRM7m
> > +         vpslldq	$0, (%r16,%r17), %zmm0
> > +## MRMDestReg
> > +         vextractps	$1, %xmm16, %r16d
> 
> What is the purpose of this test? Using all the same base and index registers
> isn't really covering very much. I'm also missing a GPR-is- source case (e.g.
> vpinsr*). And finally (I think I commented on this elsewhere already) can the
> comments please be made meaningful, without needing to guess what the
> acronyms are to be decoded to?
> 

Removed these comments and added new testcases.

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
> > @@ -0,0 +1,1464 @@
> > +# Check 64bit APX_F EVEX-Promoted instructions.
> > +
> > +	.text
> > +_start:
> > +	aadd	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	aadd	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	aand	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	aand	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adc	$0x7b,%r16b	 #APX_F OPC_EVEX_EVEX
> > +	adc	$0x7b,%r18w	 #APX_F OPC_EVEX_EVEX
> > +	adc	$0x7b,%r25d	 #APX_F OPC_EVEX_EVEX
> > +	adc	$0x7b,%r31	 #APX_F OPC_EVEX_EVEX
> > +	adcb	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adcw	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adcl	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adcq	$0x7b,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adcw	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adcl	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adcq	$0x7b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> 
> If this 2nd triplet of adc* is useful, why no adcb? Also, like above:
> - more variation of register use would imo be better (there's no egpr
>   index register here),
> - comments want to be useful, or be dropped.
> 

Deleted these tests ( Please refer to the next comment for details), and deleted comments.

> Speaking of comments, ...
> 
> > +	adc	%r16b,%dl	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r16b,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r18w,%ax	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r18w,0x123(%r16,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r18w,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r25d,%edx	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r25d,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r31,%r15	 #APX_F OPC_EVEX_EVEX
> > +	adc	%r31,0x123(%r31,%rax,4)	 #APX_F OPC_EVEX_EVEX
> > +	adc	0x123(%r16,%rax,4),%r16b	 #APX_F OPC_EVEX_EVEX
> > +	adc	0x123(%r16,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
> > +	adc	0x123(%r31,%rax,4),%r18w	 #APX_F OPC_EVEX_EVEX
> > +	adc	0x123(%r31,%rax,4),%r25d	 #APX_F OPC_EVEX_EVEX
> > +	adc	0x123(%r31,%rax,4),%r31	 #APX_F OPC_EVEX_EVEX
> 
> ... the entire set of adc here doesn't encode as EVEX, but as REX2 (i.e.
> the comments are outright wrong). As a result the EVEX encodings added to
> the opcode table in the previous patch aren't being tested at all.
> 

Since their decoding is in NDD, and print {evex} is supported in Part II patch 1/6, these instructions were re-tested in part II patch1/6. Maybe we need to add some egpr32 tests for them in that patch. Deleted all REX2 testcases in this patch.

> > --- a/gas/testsuite/gas/i386/x86-64-evex.d
> > +++ b/gas/testsuite/gas/i386/x86-64-evex.d
> > @@ -17,6 +17,6 @@ Disassembly of section .text:
> >   +[a-f0-9]+:	62 f1 d6 38 7b f0    	vcvtusi2ss %rax,\{rd-
> sae\},%xmm5,%xmm6
> >   +[a-f0-9]+:	62 f1 57 38 7b f0    	vcvtusi2sd %eax,\{rd-
> bad\},%xmm5,%xmm6
> >   +[a-f0-9]+:	62 f1 d7 38 7b f0    	vcvtusi2sd %rax,\{rd-
> sae\},%xmm5,%xmm6
> > - +[a-f0-9]+:	62 e1 7e 08 2d c0    	vcvtss2si %xmm0,\(bad\)
> > + +[a-f0-9]+:	62 e1 7e 08 2d c0    	vcvtss2si %xmm0,%r16d
> >   +[a-f0-9]+:	62 e1 7c 08 c2 c0 00 	vcmpeqps %xmm0,%xmm0,\(bad\)
> 
> If the line that's now disassembling okay cannot be replaced by a suitable
> equivalent, it should be dropped rather than be adjusted. Furthermore such
> an adjustment needs to be done right in the patch leading to the changed
> output, or else things end up non-bisectable. (New tests are okay to add in a
> separate patch.)
> 

Ok, added it to patch 2/8.

> > --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> > +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> > @@ -1,5 +1,6 @@
> >  # Check illegal movbe in 64bit mode.
> >  	.text
> > +	.arch .noapx_f
> >  foo:
> >  	movbe	(%rcx),%bl
> >  	movbe	%ecx,%ebx
> 
> I don't understand the need for this addition (and hence for the need to
> change the test's expecations). Like was mentioned on the original
> AVX10 series, tests like this shall not need modification, or else it indicates
> people's code also may need ".arch .noapx_f" additions, which I'm sure you
> agree may not be required. Finally, if testcase expecations like the above
> would be needed anywhere, please generalize them such that a similar mere
> addition of a line doesn't require the entire test to be touched. Here this
> means that while for the diagnostics you of course want exact line number
> matches, for the actual listing line numbers don't don't need matching
> individually.
> 

Agree with you, but movbe is special, movbe didn't support reg to reg before, but APX enable it. so I added .arch .noapx_f for this invalid test.

Thanks, 
Lili

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-17 15:50     ` Cui, Lili
@ 2023-10-17 16:11       ` Jan Beulich
  2023-10-18  2:02         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-17 16:11 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 17.10.2023 17:50, Cui, Lili wrote:
>>> +  /* PREFIX_EVEX_MAP4_60 */
>>> +  {
>>> +    { "movbeS",	{ Gv, Ev }, 0 },
>>> +    { Bad_Opcode },
>>> +    { "movbeS",	{ Gv, Ev }, 0 },
>>> +  },
>>> +  /* PREFIX_EVEX_MAP4_61 */
>>> +  {
>>> +    { "movbeS",	{ Ev, Gv }, 0 },
>>> +    { Bad_Opcode },
>>> +    { "movbeS",	{ Ev, Gv }, 0 },
>>> +  },
>>
>> In cases like this (of which, aiui, there will be many more), where only prefix
>> 66 is valid, and only to modify operand size, it would be quite desirable to
>> have a new PREFIX_... identifier to use in the parent table entry, such that this
>> additional decode step can be avoided.
>>
> 
> Added PREFIX_DATA_AND_NP_ONLY to report bad for f2 and f3 prefix. Do you have a better name for the new PREFIX ?

If PREFIX_DATA itself cannot suitable be re-used here, maybe PREFIX_NP_OR_DATA?

Jan

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-17 15:52     ` Cui, Lili
@ 2023-10-17 16:12       ` Jan Beulich
  2023-10-18  6:31         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-17 16:12 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 17.10.2023 17:52, Cui, Lili wrote:
>> +Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseInde
>> x }
>>>
>>>  neg, 0xf6/3, 0, W|Modrm|No_sSuf|HLEPrefixLock, {
>>>
>> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex
>> }
>>> +
>>>  not, 0xf6/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, {
>>>
>> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex
>> }
>>> +not, 0xf6/2, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4, {
>>>
>> +Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseInde
>> x }
>>
>> I can't seem to be able to find the disassembly part for these. The reason I've
>> noticed is because I was meaning to figure how you deal with EVEX.nf needing
>> to be zero for those (and others). For that bit specifically I expect we want a
>> new %NF macro, which would be used as !%NF when (bad) (or some such)
>> wants printing instead of {nf}.
>>
> Their disassembly part are putted in NDD patch, I'll move them here. 
> For EVEX.nf, I added a new macro %XN to print bad for Non-NF instructions. As you can see in [PATCH 7/8] Support APX NF.
> 
>> Similary I don't think I can spot anywhere that you would check the other bits
>> which need to be zero in extended EVEX. Nor Improper use of EVEX.x4 in
>> certain pre-existing encodings (S/G insns at least; perhaps all others are okay).
> 
> Sorry, I can't get you here, what are S/G insns, could you provide more details here, thanks.

S/G is scatter/gather (i.e. AVX2 and AVX512).

Jan

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

* Re: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-17 15:53     ` FW: " Cui, Lili
@ 2023-10-17 16:19       ` Jan Beulich
  2023-10-18  2:32         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-17 16:19 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 17.10.2023 17:53, Cui, Lili wrote:
>>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>> @@ -1,5 +1,6 @@
>>>  # Check illegal movbe in 64bit mode.
>>>  	.text
>>> +	.arch .noapx_f
>>>  foo:
>>>  	movbe	(%rcx),%bl
>>>  	movbe	%ecx,%ebx
>>
>> I don't understand the need for this addition (and hence for the need to
>> change the test's expecations). Like was mentioned on the original
>> AVX10 series, tests like this shall not need modification, or else it indicates
>> people's code also may need ".arch .noapx_f" additions, which I'm sure you
>> agree may not be required. Finally, if testcase expecations like the above
>> would be needed anywhere, please generalize them such that a similar mere
>> addition of a line doesn't require the entire test to be touched. Here this
>> means that while for the diagnostics you of course want exact line number
>> matches, for the actual listing line numbers don't don't need matching
>> individually.
>>
> 
> Agree with you, but movbe is special, movbe didn't support reg to reg before, but APX enable it. so I added .arch .noapx_f for this invalid test.

To be honest I didn't really notice this difference so far. That's somewhat
ugly, because people mistakenly using a reg->reg form would suddenly get an
EVEX encoding rather than an error. This will need some further thought;
please mention the "anomaly" explicitly in the description of the respective
patch.

Jan

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-17 16:11       ` Jan Beulich
@ 2023-10-18  2:02         ` Cui, Lili
  2023-10-18  6:10           ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18  2:02 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> Subject: Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
> 
> On 17.10.2023 17:50, Cui, Lili wrote:
> >>> +  /* PREFIX_EVEX_MAP4_60 */
> >>> +  {
> >>> +    { "movbeS",	{ Gv, Ev }, 0 },
> >>> +    { Bad_Opcode },
> >>> +    { "movbeS",	{ Gv, Ev }, 0 },
> >>> +  },
> >>> +  /* PREFIX_EVEX_MAP4_61 */
> >>> +  {
> >>> +    { "movbeS",	{ Ev, Gv }, 0 },
> >>> +    { Bad_Opcode },
> >>> +    { "movbeS",	{ Ev, Gv }, 0 },
> >>> +  },
> >>
> >> In cases like this (of which, aiui, there will be many more), where
> >> only prefix
> >> 66 is valid, and only to modify operand size, it would be quite
> >> desirable to have a new PREFIX_... identifier to use in the parent
> >> table entry, such that this additional decode step can be avoided.
> >>
> >
> > Added PREFIX_DATA_AND_NP_ONLY to report bad for f2 and f3 prefix. Do
> you have a better name for the new PREFIX ?
> 
> If PREFIX_DATA itself cannot suitable be re-used here, maybe
> PREFIX_NP_OR_DATA?

Ok, thanks! I'll update it in V3 and the same goes for other emails.

Lili.


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

* RE: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-17 16:19       ` Jan Beulich
@ 2023-10-18  2:32         ` Cui, Lili
  2023-10-18  6:05           ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18  2:32 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> >>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>> @@ -1,5 +1,6 @@
> >>>  # Check illegal movbe in 64bit mode.
> >>>  	.text
> >>> +	.arch .noapx_f
> >>>  foo:
> >>>  	movbe	(%rcx),%bl
> >>>  	movbe	%ecx,%ebx
> >>
> >> I don't understand the need for this addition (and hence for the need
> >> to change the test's expecations). Like was mentioned on the original
> >> AVX10 series, tests like this shall not need modification, or else it
> >> indicates people's code also may need ".arch .noapx_f" additions,
> >> which I'm sure you agree may not be required. Finally, if testcase
> >> expecations like the above would be needed anywhere, please
> >> generalize them such that a similar mere addition of a line doesn't
> >> require the entire test to be touched. Here this means that while for
> >> the diagnostics you of course want exact line number matches, for the
> >> actual listing line numbers don't don't need matching individually.
> >>
> >
> > Agree with you, but movbe is special, movbe didn't support reg to reg
> before, but APX enable it. so I added .arch .noapx_f for this invalid test.
> 
> To be honest I didn't really notice this difference so far. That's somewhat ugly,
> because people mistakenly using a reg->reg form would suddenly get an EVEX
> encoding rather than an error. This will need some further thought; please
> mention the "anomaly" explicitly in the description of the respective patch.
> 
SPEC:
Note: The promoted versions of MOVBE will be extended to include the “MOVBE reg1,
reg2” form (namely, the ModRM.Mod = 3 case) for both opcodes 0xF0 and 0xF1. This
extension makes the promotion of BSWAP for NDD support unnecessary.

I'll add a description of movbe to the patch 2/8 changelog. 

// Move after swapping the bytes
 movbe, 0x0f38f0, Movbe, D|Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+movbe, 0x60, Movbe|APX_F, D|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }

Thanks,
Lili.

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

* Re: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-18  2:32         ` Cui, Lili
@ 2023-10-18  6:05           ` Jan Beulich
  2023-10-18  7:16             ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-18  6:05 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 18.10.2023 04:32, Cui, Lili wrote:
>>>>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>>>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>>>> @@ -1,5 +1,6 @@
>>>>>  # Check illegal movbe in 64bit mode.
>>>>>  	.text
>>>>> +	.arch .noapx_f
>>>>>  foo:
>>>>>  	movbe	(%rcx),%bl
>>>>>  	movbe	%ecx,%ebx
>>>>
>>>> I don't understand the need for this addition (and hence for the need
>>>> to change the test's expecations). Like was mentioned on the original
>>>> AVX10 series, tests like this shall not need modification, or else it
>>>> indicates people's code also may need ".arch .noapx_f" additions,
>>>> which I'm sure you agree may not be required. Finally, if testcase
>>>> expecations like the above would be needed anywhere, please
>>>> generalize them such that a similar mere addition of a line doesn't
>>>> require the entire test to be touched. Here this means that while for
>>>> the diagnostics you of course want exact line number matches, for the
>>>> actual listing line numbers don't don't need matching individually.
>>>>
>>>
>>> Agree with you, but movbe is special, movbe didn't support reg to reg
>> before, but APX enable it. so I added .arch .noapx_f for this invalid test.
>>
>> To be honest I didn't really notice this difference so far. That's somewhat ugly,
>> because people mistakenly using a reg->reg form would suddenly get an EVEX
>> encoding rather than an error. This will need some further thought; please
>> mention the "anomaly" explicitly in the description of the respective patch.
>>
> SPEC:
> Note: The promoted versions of MOVBE will be extended to include the “MOVBE reg1,
> reg2” form (namely, the ModRM.Mod = 3 case) for both opcodes 0xF0 and 0xF1. This
> extension makes the promotion of BSWAP for NDD support unnecessary.
> 
> I'll add a description of movbe to the patch 2/8 changelog. 

Thanks. I did deduce the connection to BSWAP on the way home yesterday. Which
made me come up with a (spec) question: Wouldn't it make sense to name these
reg->reg forms BSWAP, not MOVBE? It doesn't really matter that they use the
same encoding as the MOVBE (then mem-only) forms. That would then eliminate
the concern I raised.

As to 2/8: I received two v2 thereof, with different titles, and a v2 of 3/8.
But nothing else. The list archives match this. I may take a brief look, but
really I'll await a full v2 submission for a proper new review round.

Jan

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18  2:02         ` Cui, Lili
@ 2023-10-18  6:10           ` Jan Beulich
  0 siblings, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-10-18  6:10 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 18.10.2023 04:02, Cui, Lili wrote:
>> Subject: Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
>>
>> On 17.10.2023 17:50, Cui, Lili wrote:
>>>>> +  /* PREFIX_EVEX_MAP4_60 */
>>>>> +  {
>>>>> +    { "movbeS",	{ Gv, Ev }, 0 },
>>>>> +    { Bad_Opcode },
>>>>> +    { "movbeS",	{ Gv, Ev }, 0 },
>>>>> +  },
>>>>> +  /* PREFIX_EVEX_MAP4_61 */
>>>>> +  {
>>>>> +    { "movbeS",	{ Ev, Gv }, 0 },
>>>>> +    { Bad_Opcode },
>>>>> +    { "movbeS",	{ Ev, Gv }, 0 },
>>>>> +  },
>>>>
>>>> In cases like this (of which, aiui, there will be many more), where
>>>> only prefix
>>>> 66 is valid, and only to modify operand size, it would be quite
>>>> desirable to have a new PREFIX_... identifier to use in the parent
>>>> table entry, such that this additional decode step can be avoided.
>>>>
>>>
>>> Added PREFIX_DATA_AND_NP_ONLY to report bad for f2 and f3 prefix. Do
>> you have a better name for the new PREFIX ?
>>
>> If PREFIX_DATA itself cannot suitable be re-used here, maybe
>> PREFIX_NP_OR_DATA?
> 
> Ok, thanks! I'll update it in V3 and the same goes for other emails.

Btw, it typically helps to wait a little further for replies on the
earlier version threads before sending a new version, especially (but
not limited to) when you raise questions in your replies.

Jan

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-17 16:12       ` Jan Beulich
@ 2023-10-18  6:31         ` Cui, Lili
  2023-10-18  6:47           ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18  6:31 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> >> Similary I don't think I can spot anywhere that you would check the
> >> other bits which need to be zero in extended EVEX. Nor Improper use
> >> of EVEX.x4 in certain pre-existing encodings (S/G insns at least; perhaps all
> others are okay).
> >
> > Sorry, I can't get you here, what are S/G insns, could you provide more
> details here, thanks.
> 
> S/G is scatter/gather (i.e. AVX2 and AVX512).
> 
I think you mean EVEX.V4, scatter/gather has VSIB which needs to reuse this bit (EVEX.x4 is EVEX.p[10] which is fixed value 1),
For our current code we will reassign that bit and now I changed it to check the upper 16 registers of GPR32 , do you think it is ok?

@@ -4252,7 +4252,7 @@ build_apx_evex_prefix (void)
   if (i.rex2 & REX_R)
     i.vex.bytes[1] &= 0xef;
   if (i.vex.register_specifier
-      && register_number (i.vex.register_specifier) > 0xf)
+      && (i.vex.register_specifier->reg_flags & RegRex2))
     i.vex.bytes[3] &= 0xf7;
   if (i.rex2 & REX_B)
     i.vex.bytes[1] |= 0x08;

Thanks,
Lili

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-17 15:48     ` Cui, Lili
@ 2023-10-18  6:40       ` Jan Beulich
  2023-10-18 10:44         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-18  6:40 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 17.10.2023 17:48, Cui, Lili wrote:
>> On 19.09.2023 17:25, Cui, Lili wrote:
> 
>>> --- a/gas/config/tc-i386.c
> 
>>> +++ b/gas/config/tc-i386.c
> 
>>> @@ -1945,6 +1945,30 @@ cpu_flags_match (const insn_template *t)
> 
>>>                         && (!x.bitfield.cpuvpclmulqdq ||
> 
>> cpu.bitfield.cpuvpclmulqdq))
> 
>>>                       match |= CPU_FLAGS_ARCH_MATCH;
> 
>>>             }
> 
>>> +        else if (x.bitfield.cpuapx_f)
> 
>>> +          {
> 
>>> +            if (cpu.bitfield.cpuapx_f
> 
>>> +                      && (!x.bitfield.cpumovbe || cpu.bitfield.cpumovbe)
> 
>>> +                      && (!x.bitfield.cpuept || cpu.bitfield.cpuept)
> 
>>> +                      && (!x.bitfield.cpuinvpcid || cpu.bitfield.cpuinvpcid)
> 
>>> +                      && (!x.bitfield.cpusse4_2 || cpu.bitfield.cpusse4_2)
> 
>>> +                      && (!x.bitfield.cpubmi2 || cpu.bitfield.cpubmi2)
> 
>>> +                      && (!x.bitfield.cpubmi || cpu.bitfield.cpubmi)
> 
>>> +                      && (!x.bitfield.cpuadx || cpu.bitfield.cpuadx)
> 
>>> +                      && (!x.bitfield.cpusha || cpu.bitfield.cpusha)
> 
>>> +                      && (!x.bitfield.cpuavx512bw || cpu.bitfield.cpuavx512bw)
> 
>>> +                      && (!x.bitfield.cpuavx512dq || cpu.bitfield.cpuavx512dq)
> 
>>> +                      && (!x.bitfield.cpuavx512f || cpu.bitfield.cpuavx512f)
> 
>>> +                      && (!x.bitfield.cpushstk || cpu.bitfield.cpushstk)
> 
>>> +                      && (!x.bitfield.cpumovdir64b || cpu.bitfield.cpumovdir64b)
> 
>>> +                      && (!x.bitfield.cpumovdiri || cpu.bitfield.cpumovdiri)
> 
>>> +                      && (!x.bitfield.cpuenqcmd || cpu.bitfield.cpuenqcmd)
> 
>>> +                      && (!x.bitfield.cpukl || cpu.bitfield.cpukl)
> 
>>> +                      && (!x.bitfield.cpuwidekl || cpu.bitfield.cpuwidekl)
> 
>>> +                      && (!x.bitfield.cpucmpccxadd || cpu.bitfield.cpucmpccxadd)
> 
>>> +                      && (!x.bitfield.cpurao_int || cpu.bitfield.cpurao_int))
> 
>>> +                    match |= CPU_FLAGS_ARCH_MATCH;
> 
>>> +          }
> 
>>>           else
> 
>>>             match |= CPU_FLAGS_ARCH_MATCH;
> 
>>>
> 
>>
> 
>> This is getting unwieldy, so I think we will need to think of a better way of
> 
>> expressing both "multiple ISAs need to be enabled" and "one of a set of ISAs
> 
>> needs to be enabled". It's only the mix of these expressed in a uniform way in
> 
>> the insn table that requires these extra conditionals. With the size of
> 
>> i386_cpu_attr greatly shrunk as of recently, I wonder if we couldn't simply add
> 
>> a 2nd instance of it to insn_template. One would be "all of these are required",
> 
>> while the other would be "any one of these is sufficient".
> 
>>
> 
> 
> 
> I didn't find a better way to distinguish these two types of requirements in insn_template.
> 
> I wrote a new function "cpu_flags_not_or_check" to replace these clumsy judgments.
> 
> 
> 
> static INLINE int
> 
> cpu_flags_not_or_check (const union i386_cpu_flags *x,
> 
>                         const union i386_cpu_flags *y)
> 
> {
> 
>   switch (ARRAY_SIZE(x->array))
> 
>     {
> 
>     case 5:
> 
>       if ((~x->array[4] | y->array[4]) != 0xffffffff)
> 
>         return 0;
> 
>       /* Fall through.  */
> 
>     case 4:
> 
>       if ((~x->array[3] | y->array[3]) != 0xffffffff)
> 
>         return 0;
> 
>       /* Fall through.  */
> 
>     case 3:
> 
>       if ((~x->array[2] | y->array[2]) != 0xffffffff)
> 
>         return 0;
> 
>       /* Fall through.  */
> 
>     case 2:
> 
>       if ((~x->array[1] | y->array[1]) != 0xffffffff)
> 
>         return 0;
> 
>       /* Fall through.  */
> 
>     case 1:
> 
>      return ((~x->array[1] | y->array[1]) == 0Xffffffff);
> 
>       break;
> 
>     default:
> 
>       abort ();
> 
>     }
> 
> }

Without seeing how this is used I can't comment on it. It feels though
as if you may not have fully understood my earlier reply: Even prior
to APX we already have cases where one CPU specifier in the opcode
table using | means "both" and another means "either". I think we want
to split that, and thus simplify the logic in cpu_flags_match(). That's
separate prereq work, of course.

Thing is that prior to 734dfd1cc966 this would have been prohibitively
expensive in terms of table size growth. But now we can afford having
two i386_cpu_attr fields, one meaning "all of these", the other meaning
"any of these". To limit churn in the opcode table, I'd be inclined to
continue to express CPU requirements in a single field there, using e.g.
(CpuA|CpuB)&CpuC&CpuD (Cpu prefixes re-added here for clarity, even if
they aren't present in the opcode table anymore).

I'd be happy to do that prereq work (if we can agree on the approach),
but it may mean a little bit of delay, as after my vacation I need to
catch up with a few other thinghs first.

>>> +  if (i.prefix[DATA_PREFIX] != 0)
> 
>>> +    {
> 
>>> +      i.tm.opcode_modifier.opcodeprefix = PREFIX_0X66;
> 
>>> +      i.prefix[DATA_PREFIX] = 0;
> 
>>> +    }
> 
>>
> 
>> While this looks to be correct for the case when the prefix was derived from an
> 
>> insn template and the use of 16-bit operands, I don't think it is uniformly
> 
>> correct when "data16" was used as a prefix explicitly. In such a case either
> 
>> REX2 encoding needs to be used, or an error needs emitting.
> 
>>
> 
>> You may further want to assert that i.tm.opcode_modifier.opcodeprefix is still
> 
>> zero ahead of the assignment.
> 
>>
> 
> 
> 
> For REX2 encoding, we add no special handling, just follow REX.
> 
> For EVEX-promoted encoding, such as “data16 aand   %r25d,0x123(%r31,%rax,4)”, the following existing code will report an error.
> 
> 
> 
>   if (is_any_vex_encoding (&i.tm)
> 
>       || i.tm.operand_types[i.imm_operands].bitfield.class >= RegMMX
> 
>       || i.tm.operand_types[i.imm_operands + 1].bitfield.class >= RegMMX)
> 
>     {
> 
>       /* Check for data size prefix on VEX/XOP/EVEX encoded and SIMD insns.  */
> 
>       if (i.prefix[DATA_PREFIX])
> 
>         {
> 
>           as_bad (_("data size prefix invalid with `%s'"), insn_name (&i.tm));
> 
>           return;
> 
>         }

Thinking of it, I may need to revise my earlier comment some: RAO-INT insns
are a bad example here, since despite being legacy-encoded they don't permit
a data16 prefix to specify 16-bit operand size. Consider the same for e.g.
AND. The legacy form permits use of data16 (leaving aside that it's better /
clearer to simply use 16-bit register names), so the promoted forms likely
ought to permit such as well. IOW perhaps the code you have is correct, but
the check you quote may need adjusting.

>>> @@ -1121,6 +1122,15 @@ process_i386_opcode_modifier (FILE *table,
> 
>> char *mod, unsigned int space,
> 
>>>         fprintf (stderr,
> 
>>>                        "%s: %d: W modifier without Word/Dword/Qword
> 
>> operand(s)\n",
> 
>>>                        filename, lineno);
> 
>>> +      if (modifiers[Vex].value
> 
>>> +        || (space > SPACE_0F
> 
>>> +            && !(space == SPACE_EVEXMAP4
> 
>>> +                       || modifiers[EVex].value
> 
>>> +                       || modifiers[Disp8MemShift].value
> 
>>> +                       || modifiers[Broadcast].value
> 
>>> +                       || modifiers[Masking].value
> 
>>> +                       || modifiers[SAE].value)))
> 
>>
> 
>> First of all, this wants simplifying to
> 
>>
> 
>>       if (modifiers[Vex].value
> 
>>              || (space > SPACE_0F
> 
>>                  && space != SPACE_EVEXMAP4
> 
>>                  && !modifiers[EVex].value
> 
>>                  && !modifiers[Disp8MemShift].value
> 
>>                  && !modifiers[Broadcast].value
> 
>>                  && !modifiers[Masking].value
> 
>>                  && !modifiers[SAE].value))
> 
>>
> 
>> which helps readability and makes more obvious that this parallels tc-
> 
>> i386.c:is_evex_encoding(). Such a connection, where updates need to be
> 
>> made in sync, needs pointing out in code comments at both sites.
> 
>>
> 
> 
> 
> Done.
> 
> 
> 
>> Yet of course this condition won't hold anymore for combined VEX/EVEX
> 
>> templates.
> 
>>
> 
> 
> 
> I rebased master and as you predicted this doesn't work, one entry contains both VEX and EVEX, VEX requires No_egpr=1 and EVEX requires No_egpr=0,
> 
> Finally I chose to add "No_egpr=1" for it. And added the following judgment in check_EgprOperands.
> 
> 
> 
> check_EgprOperands (const insn_template *t)
> 
> {
> 
> -  if (t->opcode_modifier.noegpr)
> 
> if (t->opcode_modifier.noegpr && !need_evex_encoding())

I'll need to look at this in context, so I can't comment right here.

Also, just to mention it: Something's wrong with your reply (also visible
in the list archive copy), harming readability quite a bit. There are
extra blank lines between any two real ones.

Jan

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18  6:31         ` Cui, Lili
@ 2023-10-18  6:47           ` Jan Beulich
  2023-10-18  7:52             ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-18  6:47 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 18.10.2023 08:31, Cui, Lili wrote:
>>>> Similary I don't think I can spot anywhere that you would check the
>>>> other bits which need to be zero in extended EVEX. Nor Improper use
>>>> of EVEX.x4 in certain pre-existing encodings (S/G insns at least; perhaps all
>> others are okay).
>>>
>>> Sorry, I can't get you here, what are S/G insns, could you provide more
>> details here, thanks.
>>
>> S/G is scatter/gather (i.e. AVX2 and AVX512).
>>
> I think you mean EVEX.V4, scatter/gather has VSIB which needs to reuse this bit (EVEX.x4 is EVEX.p[10] which is fixed value 1),
> For our current code we will reassign that bit and now I changed it to check the upper 16 registers of GPR32 , do you think it is ok?
> 
> @@ -4252,7 +4252,7 @@ build_apx_evex_prefix (void)
>    if (i.rex2 & REX_R)
>      i.vex.bytes[1] &= 0xef;
>    if (i.vex.register_specifier
> -      && register_number (i.vex.register_specifier) > 0xf)
> +      && (i.vex.register_specifier->reg_flags & RegRex2))
>      i.vex.bytes[3] &= 0xf7;
>    if (i.rex2 & REX_B)
>      i.vex.bytes[1] |= 0x08;

First of all my comment was disassembly related; you stripped a little
too much context for this to remain visible here. And then I think I
did mean EVEX.x4 - as you say it needs to be fixed-1 in e.g. S/G insns,
and the checking thereof is what I'm missing.

Jan

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

* RE: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-18  6:05           ` Jan Beulich
@ 2023-10-18  7:16             ` Cui, Lili
  2023-10-18  8:05               ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18  7:16 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> On 18.10.2023 04:32, Cui, Lili wrote:
> >>>>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>>>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>>>> @@ -1,5 +1,6 @@
> >>>>>  # Check illegal movbe in 64bit mode.
> >>>>>  	.text
> >>>>> +	.arch .noapx_f
> >>>>>  foo:
> >>>>>  	movbe	(%rcx),%bl
> >>>>>  	movbe	%ecx,%ebx
> >>>>
> >>>> I don't understand the need for this addition (and hence for the
> >>>> need to change the test's expecations). Like was mentioned on the
> >>>> original
> >>>> AVX10 series, tests like this shall not need modification, or else
> >>>> it indicates people's code also may need ".arch .noapx_f"
> >>>> additions, which I'm sure you agree may not be required. Finally,
> >>>> if testcase expecations like the above would be needed anywhere,
> >>>> please generalize them such that a similar mere addition of a line
> >>>> doesn't require the entire test to be touched. Here this means that
> >>>> while for the diagnostics you of course want exact line number
> >>>> matches, for the actual listing line numbers don't don't need matching
> individually.
> >>>>
> >>>
> >>> Agree with you, but movbe is special, movbe didn't support reg to
> >>> reg
> >> before, but APX enable it. so I added .arch .noapx_f for this invalid test.
> >>
> >> To be honest I didn't really notice this difference so far. That's
> >> somewhat ugly, because people mistakenly using a reg->reg form would
> >> suddenly get an EVEX encoding rather than an error. This will need
> >> some further thought; please mention the "anomaly" explicitly in the
> description of the respective patch.
> >>
> > SPEC:
> > Note: The promoted versions of MOVBE will be extended to include the
> > “MOVBE reg1, reg2” form (namely, the ModRM.Mod = 3 case) for both
> > opcodes 0xF0 and 0xF1. This extension makes the promotion of BSWAP for
> NDD support unnecessary.
> >
> > I'll add a description of movbe to the patch 2/8 changelog.
> 
> Thanks. I did deduce the connection to BSWAP on the way home yesterday.
> Which made me come up with a (spec) question: Wouldn't it make sense to
> name these
> reg->reg forms BSWAP, not MOVBE? It doesn't really matter that they use
> reg->the
> same encoding as the MOVBE (then mem-only) forms. That would then
> eliminate the concern I raised.
> 

If we extend BSWAP, it needs to add the operation of reading ModRM.Mod. I think this is the benefit of this solution now.

> As to 2/8: I received two v2 thereof, with different titles, and a v2 of 3/8.
> But nothing else. The list archives match this. I may take a brief look, but really
> I'll await a full v2 submission for a proper new review round.
>
After we split a new patch for the EVEX_MAP4_ table, we need to insert a patch into the previous patch. I am afraid that if I change the patch number, the subsequent review will be easily confused, so I have not changed the patch number for the time being.  But for V3 I'll create a new patch  number for it.

Thanks.

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18  6:47           ` Jan Beulich
@ 2023-10-18  7:52             ` Cui, Lili
  2023-10-18  8:21               ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18  7:52 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils



> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, October 18, 2023 2:47 PM
> To: Cui, Lili <lili.cui@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org
> Subject: Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
> 
> On 18.10.2023 08:31, Cui, Lili wrote:
> >>>> Similary I don't think I can spot anywhere that you would check the
> >>>> other bits which need to be zero in extended EVEX. Nor Improper use
> >>>> of EVEX.x4 in certain pre-existing encodings (S/G insns at least;
> >>>> perhaps all
> >> others are okay).
> >>>
> >>> Sorry, I can't get you here, what are S/G insns, could you provide
> >>> more
> >> details here, thanks.
> >>
> >> S/G is scatter/gather (i.e. AVX2 and AVX512).
> >>
> > I think you mean EVEX.V4, scatter/gather has VSIB which needs to reuse
> > this bit (EVEX.x4 is EVEX.p[10] which is fixed value 1), For our current code
> we will reassign that bit and now I changed it to check the upper 16 registers
> of GPR32 , do you think it is ok?
> >
> > @@ -4252,7 +4252,7 @@ build_apx_evex_prefix (void)
> >    if (i.rex2 & REX_R)
> >      i.vex.bytes[1] &= 0xef;
> >    if (i.vex.register_specifier
> > -      && register_number (i.vex.register_specifier) > 0xf)
> > +      && (i.vex.register_specifier->reg_flags & RegRex2))
> >      i.vex.bytes[3] &= 0xf7;
> >    if (i.rex2 & REX_B)
> >      i.vex.bytes[1] |= 0x08;
> 
> First of all my comment was disassembly related; you stripped a little too
> much context for this to remain visible here. And then I think I did mean
> EVEX.x4 - as you say it needs to be fixed-1 in e.g. S/G insns, and the checking
> thereof is what I'm missing.
> 
Ok ,  I will drop the encoder changes, and add an X4 check when instruction has vex_vsib* type in decoder.

Lili.

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

* Re: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-18  7:16             ` Cui, Lili
@ 2023-10-18  8:05               ` Jan Beulich
  2023-10-18 11:26                 ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-18  8:05 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 18.10.2023 09:16, Cui, Lili wrote:
>> On 18.10.2023 04:32, Cui, Lili wrote:
>>>>>>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>>>>>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>>>>>> @@ -1,5 +1,6 @@
>>>>>>>  # Check illegal movbe in 64bit mode.
>>>>>>>  	.text
>>>>>>> +	.arch .noapx_f
>>>>>>>  foo:
>>>>>>>  	movbe	(%rcx),%bl
>>>>>>>  	movbe	%ecx,%ebx
>>>>>>
>>>>>> I don't understand the need for this addition (and hence for the
>>>>>> need to change the test's expecations). Like was mentioned on the
>>>>>> original
>>>>>> AVX10 series, tests like this shall not need modification, or else
>>>>>> it indicates people's code also may need ".arch .noapx_f"
>>>>>> additions, which I'm sure you agree may not be required. Finally,
>>>>>> if testcase expecations like the above would be needed anywhere,
>>>>>> please generalize them such that a similar mere addition of a line
>>>>>> doesn't require the entire test to be touched. Here this means that
>>>>>> while for the diagnostics you of course want exact line number
>>>>>> matches, for the actual listing line numbers don't don't need matching
>> individually.
>>>>>>
>>>>>
>>>>> Agree with you, but movbe is special, movbe didn't support reg to
>>>>> reg
>>>> before, but APX enable it. so I added .arch .noapx_f for this invalid test.
>>>>
>>>> To be honest I didn't really notice this difference so far. That's
>>>> somewhat ugly, because people mistakenly using a reg->reg form would
>>>> suddenly get an EVEX encoding rather than an error. This will need
>>>> some further thought; please mention the "anomaly" explicitly in the
>> description of the respective patch.
>>>>
>>> SPEC:
>>> Note: The promoted versions of MOVBE will be extended to include the
>>> “MOVBE reg1, reg2” form (namely, the ModRM.Mod = 3 case) for both
>>> opcodes 0xF0 and 0xF1. This extension makes the promotion of BSWAP for
>> NDD support unnecessary.
>>>
>>> I'll add a description of movbe to the patch 2/8 changelog.
>>
>> Thanks. I did deduce the connection to BSWAP on the way home yesterday.
>> Which made me come up with a (spec) question: Wouldn't it make sense to
>> name these
>> reg->reg forms BSWAP, not MOVBE? It doesn't really matter that they use
>> reg->the
>> same encoding as the MOVBE (then mem-only) forms. That would then
>> eliminate the concern I raised.
>>
> 
> If we extend BSWAP, it needs to add the operation of reading ModRM.Mod. I think this is the benefit of this solution now.

I'm afraid I don't follow: I don't propose extending the original BSWAP.
I merely propose to use the BSWAP mnemonic with the reg->reg form of
what's presently called MOVBE. (As an aside, in principle no ModR/M byte
would be needed to extend the original BSWAP: One operand is encoded in
the base opcode, and the other could be encoded in VVVV. But that would
of course needlessly consume an entire row in the opcode table. Hence
why I fully understand that the opcode wants sharing with MOVBE.)

>> As to 2/8: I received two v2 thereof, with different titles, and a v2 of 3/8.
>> But nothing else. The list archives match this. I may take a brief look, but really
>> I'll await a full v2 submission for a proper new review round.
>>
> After we split a new patch for the EVEX_MAP4_ table, we need to insert a patch into the previous patch. I am afraid that if I change the patch number, the subsequent review will be easily confused, so I have not changed the patch number for the time being.  But for V3 I'll create a new patch  number for it.

Patch numbering should always match the entire series, plus it should be
the common case that complete series are sent out, not just new versions
of individual patches. In the unusual event of nevertheless doing so,
patch numbering can still be made unambiguous by e.g. (considering this
case) using 1.9/8, making clear the new patch comes ahead of the revised
original one. (Whether a new version of a series is shrunk or extended
is entirely independent of that. E.g. in the case here I could easily
see a new version combining the two series which were sent initially,
for whatever reason.)

Jan

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18  7:52             ` Cui, Lili
@ 2023-10-18  8:21               ` Jan Beulich
  2023-10-18 11:30                 ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-18  8:21 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 18.10.2023 09:52, Cui, Lili wrote:
> 
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, October 18, 2023 2:47 PM
>> To: Cui, Lili <lili.cui@intel.com>
>> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org
>> Subject: Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
>>
>> On 18.10.2023 08:31, Cui, Lili wrote:
>>>>>> Similary I don't think I can spot anywhere that you would check the
>>>>>> other bits which need to be zero in extended EVEX. Nor Improper use
>>>>>> of EVEX.x4 in certain pre-existing encodings (S/G insns at least;
>>>>>> perhaps all
>>>> others are okay).
>>>>>
>>>>> Sorry, I can't get you here, what are S/G insns, could you provide
>>>>> more
>>>> details here, thanks.
>>>>
>>>> S/G is scatter/gather (i.e. AVX2 and AVX512).
>>>>
>>> I think you mean EVEX.V4, scatter/gather has VSIB which needs to reuse
>>> this bit (EVEX.x4 is EVEX.p[10] which is fixed value 1), For our current code
>> we will reassign that bit and now I changed it to check the upper 16 registers
>> of GPR32 , do you think it is ok?
>>>
>>> @@ -4252,7 +4252,7 @@ build_apx_evex_prefix (void)
>>>    if (i.rex2 & REX_R)
>>>      i.vex.bytes[1] &= 0xef;
>>>    if (i.vex.register_specifier
>>> -      && register_number (i.vex.register_specifier) > 0xf)
>>> +      && (i.vex.register_specifier->reg_flags & RegRex2))
>>>      i.vex.bytes[3] &= 0xf7;
>>>    if (i.rex2 & REX_B)
>>>      i.vex.bytes[1] |= 0x08;
>>
>> First of all my comment was disassembly related; you stripped a little too
>> much context for this to remain visible here. And then I think I did mean
>> EVEX.x4 - as you say it needs to be fixed-1 in e.g. S/G insns, and the checking
>> thereof is what I'm missing.
>>
> Ok ,  I will drop the encoder changes, and add an X4 check when instruction has vex_vsib* type in decoder.

You understand though that I used the S/G insns as example only. I didn't do
a proper check whether any others might also be affected. In particular ones
not allowing for memory operands might be.

Jan

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18  6:40       ` Jan Beulich
@ 2023-10-18 10:44         ` Cui, Lili
  2023-10-18 10:50           ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18 10:44 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> Without seeing how this is used I can't comment on it. It feels though as if you
> may not have fully understood my earlier reply: Even prior to APX we already
> have cases where one CPU specifier in the opcode table using | means "both"
> and another means "either". I think we want to split that, and thus simplify
> the logic in cpu_flags_match(). That's separate prereq work, of course.
> 
> Thing is that prior to 734dfd1cc966 this would have been prohibitively
> expensive in terms of table size growth. But now we can afford having two
> i386_cpu_attr fields, one meaning "all of these", the other meaning "any of
> these". To limit churn in the opcode table, I'd be inclined to continue to
> express CPU requirements in a single field there, using e.g.
> (CpuA|CpuB)&CpuC&CpuD (Cpu prefixes re-added here for clarity, even if
> they aren't present in the opcode table anymore).
> 
> I'd be happy to do that prereq work (if we can agree on the approach), but it
> may mean a little bit of delay, as after my vacation I need to catch up with a
> few other thinghs first.
> 

It would be great if you could do this (agree with the approach), it is not hurry, it may take a long time to commit the APX  to the master.

> >>> +  if (i.prefix[DATA_PREFIX] != 0)
> >
> >>> +    {
> >
> >>> +      i.tm.opcode_modifier.opcodeprefix = PREFIX_0X66;
> >
> >>> +      i.prefix[DATA_PREFIX] = 0;
> >
> >>> +    }
> >
> >>
> >
> >> While this looks to be correct for the case when the prefix was
> >> derived from an
> >
> >> insn template and the use of 16-bit operands, I don't think it is
> >> uniformly
> >
> >> correct when "data16" was used as a prefix explicitly. In such a case
> >> either
> >
> >> REX2 encoding needs to be used, or an error needs emitting.
> >
> >>
> >
> >> You may further want to assert that i.tm.opcode_modifier.opcodeprefix
> >> is still
> >
> >> zero ahead of the assignment.
> >
> >>
> >
> >
> >
> > For REX2 encoding, we add no special handling, just follow REX.
> >
> > For EVEX-promoted encoding, such as “data16
> aand   %r25d,0x123(%r31,%rax,4)”, the following existing code will report an
> error.
> >
> >
> >
> >   if (is_any_vex_encoding (&i.tm)
> >
> >       || i.tm.operand_types[i.imm_operands].bitfield.class >= RegMMX
> >
> >       || i.tm.operand_types[i.imm_operands + 1].bitfield.class >=
> > RegMMX)
> >
> >     {
> >
> >       /* Check for data size prefix on VEX/XOP/EVEX encoded and SIMD
> > insns.  */
> >
> >       if (i.prefix[DATA_PREFIX])
> >
> >         {
> >
> >           as_bad (_("data size prefix invalid with `%s'"), insn_name
> > (&i.tm));
> >
> >           return;
> >
> >         }
> 
> Thinking of it, I may need to revise my earlier comment some: RAO-INT insns
> are a bad example here, since despite being legacy-encoded they don't permit
> a data16 prefix to specify 16-bit operand size. Consider the same for e.g.
> AND. The legacy form permits use of data16 (leaving aside that it's better /
> clearer to simply use 16-bit register names), so the promoted forms likely
> ought to permit such as well. IOW perhaps the code you have is correct, but
> the check you quote may need adjusting.
> 

I listed 5 instructions to check the data16 prefix, is the last one what you want?

$ cat add.s

and %ebx, %eax
data16 and %ebx, %eax
and %ebx, %r16d
data16 and %ebx, %r16d
{evex} data16 and %ebx, %r16d

$ objdump -dw  and.o

   0:   21 d8                   and    %ebx,%eax
   2:   66 21 d8                and    %bx,%ax
   5:   d5 10 21 d8             and    %ebx,%r16d
   9:   66 d5 10 21 d8          and    %bx,%r16w
   Error: data size prefix invalid with `and'

> >
> > I rebased master and as you predicted this doesn't work, one entry
> > contains both VEX and EVEX, VEX requires No_egpr=1 and EVEX requires
> > No_egpr=0,
> >
> > Finally I chose to add "No_egpr=1" for it. And added the following judgment
> in check_EgprOperands.
> >
> >
> >
> > check_EgprOperands (const insn_template *t)
> >
> > {
> >
> > -  if (t->opcode_modifier.noegpr)
> >
> > if (t->opcode_modifier.noegpr && !need_evex_encoding())
> 
> I'll need to look at this in context, so I can't comment right here.
> 
> Also, just to mention it: Something's wrong with your reply (also visible in the
> list archive copy), harming readability quite a bit. There are extra blank lines
> between any two real ones.
> 
Oh, sorry, I tried inserting a table into the email and changed it to HTML format, but forgot to change it back.

Thanks,
Lili.

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18 10:44         ` Cui, Lili
@ 2023-10-18 10:50           ` Jan Beulich
  0 siblings, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-10-18 10:50 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 18.10.2023 12:44, Cui, Lili wrote:
>> Without seeing how this is used I can't comment on it. It feels though as if you
>> may not have fully understood my earlier reply: Even prior to APX we already
>> have cases where one CPU specifier in the opcode table using | means "both"
>> and another means "either". I think we want to split that, and thus simplify
>> the logic in cpu_flags_match(). That's separate prereq work, of course.
>>
>> Thing is that prior to 734dfd1cc966 this would have been prohibitively
>> expensive in terms of table size growth. But now we can afford having two
>> i386_cpu_attr fields, one meaning "all of these", the other meaning "any of
>> these". To limit churn in the opcode table, I'd be inclined to continue to
>> express CPU requirements in a single field there, using e.g.
>> (CpuA|CpuB)&CpuC&CpuD (Cpu prefixes re-added here for clarity, even if
>> they aren't present in the opcode table anymore).
>>
>> I'd be happy to do that prereq work (if we can agree on the approach), but it
>> may mean a little bit of delay, as after my vacation I need to catch up with a
>> few other thinghs first.
>>
> 
> It would be great if you could do this (agree with the approach), it is not hurry, it may take a long time to commit the APX  to the master.
> 
>>>>> +  if (i.prefix[DATA_PREFIX] != 0)
>>>
>>>>> +    {
>>>
>>>>> +      i.tm.opcode_modifier.opcodeprefix = PREFIX_0X66;
>>>
>>>>> +      i.prefix[DATA_PREFIX] = 0;
>>>
>>>>> +    }
>>>
>>>>
>>>
>>>> While this looks to be correct for the case when the prefix was
>>>> derived from an
>>>
>>>> insn template and the use of 16-bit operands, I don't think it is
>>>> uniformly
>>>
>>>> correct when "data16" was used as a prefix explicitly. In such a case
>>>> either
>>>
>>>> REX2 encoding needs to be used, or an error needs emitting.
>>>
>>>>
>>>
>>>> You may further want to assert that i.tm.opcode_modifier.opcodeprefix
>>>> is still
>>>
>>>> zero ahead of the assignment.
>>>
>>>>
>>>
>>>
>>>
>>> For REX2 encoding, we add no special handling, just follow REX.
>>>
>>> For EVEX-promoted encoding, such as “data16
>> aand   %r25d,0x123(%r31,%rax,4)”, the following existing code will report an
>> error.
>>>
>>>
>>>
>>>   if (is_any_vex_encoding (&i.tm)
>>>
>>>       || i.tm.operand_types[i.imm_operands].bitfield.class >= RegMMX
>>>
>>>       || i.tm.operand_types[i.imm_operands + 1].bitfield.class >=
>>> RegMMX)
>>>
>>>     {
>>>
>>>       /* Check for data size prefix on VEX/XOP/EVEX encoded and SIMD
>>> insns.  */
>>>
>>>       if (i.prefix[DATA_PREFIX])
>>>
>>>         {
>>>
>>>           as_bad (_("data size prefix invalid with `%s'"), insn_name
>>> (&i.tm));
>>>
>>>           return;
>>>
>>>         }
>>
>> Thinking of it, I may need to revise my earlier comment some: RAO-INT insns
>> are a bad example here, since despite being legacy-encoded they don't permit
>> a data16 prefix to specify 16-bit operand size. Consider the same for e.g.
>> AND. The legacy form permits use of data16 (leaving aside that it's better /
>> clearer to simply use 16-bit register names), so the promoted forms likely
>> ought to permit such as well. IOW perhaps the code you have is correct, but
>> the check you quote may need adjusting.
>>
> 
> I listed 5 instructions to check the data16 prefix, is the last one what you want?
> 
> $ cat add.s
> 
> and %ebx, %eax
> data16 and %ebx, %eax
> and %ebx, %r16d
> data16 and %ebx, %r16d
> {evex} data16 and %ebx, %r16d
> 
> $ objdump -dw  and.o
> 
>    0:   21 d8                   and    %ebx,%eax
>    2:   66 21 d8                and    %bx,%ax
>    5:   d5 10 21 d8             and    %ebx,%r16d
>    9:   66 d5 10 21 d8          and    %bx,%r16w
>    Error: data size prefix invalid with `and'

Kind of. I was really thinking of e.g.

data16 and %ebx, %ecx, %edx

but yes, forms with {evex} would be similarly affected.

Jan

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

* RE: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-18  8:05               ` Jan Beulich
@ 2023-10-18 11:26                 ` Cui, Lili
  2023-10-18 12:06                   ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18 11:26 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, October 18, 2023 4:06 PM
> To: Cui, Lili <lili.cui@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org
> Subject: Re: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
> 
> On 18.10.2023 09:16, Cui, Lili wrote:
> >> On 18.10.2023 04:32, Cui, Lili wrote:
> >>>>>>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>>>>>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>>>>>> @@ -1,5 +1,6 @@
> >>>>>>>  # Check illegal movbe in 64bit mode.
> >>>>>>>  	.text
> >>>>>>> +	.arch .noapx_f
> >>>>>>>  foo:
> >>>>>>>  	movbe	(%rcx),%bl
> >>>>>>>  	movbe	%ecx,%ebx
> >>>>>>
> >>>>>> I don't understand the need for this addition (and hence for the
> >>>>>> need to change the test's expecations). Like was mentioned on the
> >>>>>> original
> >>>>>> AVX10 series, tests like this shall not need modification, or
> >>>>>> else it indicates people's code also may need ".arch .noapx_f"
> >>>>>> additions, which I'm sure you agree may not be required. Finally,
> >>>>>> if testcase expecations like the above would be needed anywhere,
> >>>>>> please generalize them such that a similar mere addition of a
> >>>>>> line doesn't require the entire test to be touched. Here this
> >>>>>> means that while for the diagnostics you of course want exact
> >>>>>> line number matches, for the actual listing line numbers don't
> >>>>>> don't need matching
> >> individually.
> >>>>>>
> >>>>>
> >>>>> Agree with you, but movbe is special, movbe didn't support reg to
> >>>>> reg
> >>>> before, but APX enable it. so I added .arch .noapx_f for this invalid test.
> >>>>
> >>>> To be honest I didn't really notice this difference so far. That's
> >>>> somewhat ugly, because people mistakenly using a reg->reg form
> >>>> would suddenly get an EVEX encoding rather than an error. This will
> >>>> need some further thought; please mention the "anomaly" explicitly
> >>>> in the
> >> description of the respective patch.
> >>>>
> >>> SPEC:
> >>> Note: The promoted versions of MOVBE will be extended to include the
> >>> “MOVBE reg1, reg2” form (namely, the ModRM.Mod = 3 case) for both
> >>> opcodes 0xF0 and 0xF1. This extension makes the promotion of BSWAP
> >>> for
> >> NDD support unnecessary.
> >>>
> >>> I'll add a description of movbe to the patch 2/8 changelog.
> >>
> >> Thanks. I did deduce the connection to BSWAP on the way home yesterday.
> >> Which made me come up with a (spec) question: Wouldn't it make sense
> >> to name these
> >> reg->reg forms BSWAP, not MOVBE? It doesn't really matter that they
> >> reg->use the
> >> same encoding as the MOVBE (then mem-only) forms. That would then
> >> eliminate the concern I raised.
> >>
> >
> > If we extend BSWAP, it needs to add the operation of reading ModRM.Mod. I
> think this is the benefit of this solution now.
> 
> I'm afraid I don't follow: I don't propose extending the original BSWAP.
> I merely propose to use the BSWAP mnemonic with the reg->reg form of
> what's presently called MOVBE. (As an aside, in principle no ModR/M byte
> would be needed to extend the original BSWAP: One operand is encoded in
> the base opcode, and the other could be encoded in VVVV. But that would of
> course needlessly consume an entire row in the opcode table. Hence why I
> fully understand that the opcode wants sharing with MOVBE.)
> 

I think it's a trade-off between functionality closer to BSWAP and opcode closer to MOVBE. Since the spec was published and gcc has committed the patch to the community, I think it would be hard to push it to change.

> >> As to 2/8: I received two v2 thereof, with different titles, and a v2 of 3/8.
> >> But nothing else. The list archives match this. I may take a brief
> >> look, but really I'll await a full v2 submission for a proper new review
> round.
> >>
> > After we split a new patch for the EVEX_MAP4_ table, we need to insert a
> patch into the previous patch. I am afraid that if I change the patch number,
> the subsequent review will be easily confused, so I have not changed the patch
> number for the time being.  But for V3 I'll create a new patch  number for it.
> 
> Patch numbering should always match the entire series, plus it should be the
> common case that complete series are sent out, not just new versions of
> individual patches. In the unusual event of nevertheless doing so, patch
> numbering can still be made unambiguous by e.g. (considering this
> case) using 1.9/8, making clear the new patch comes ahead of the revised
> original one. (Whether a new version of a series is shrunk or extended is
> entirely independent of that. E.g. in the case here I could easily see a new
> version combining the two series which were sent initially, for whatever
> reason.)
> 

Got it, thank you very much.

Lili.



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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18  8:21               ` Jan Beulich
@ 2023-10-18 11:30                 ` Cui, Lili
  2023-10-19 11:58                   ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-18 11:30 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> >> Subject: Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
> >>
> >> On 18.10.2023 08:31, Cui, Lili wrote:
> >>>>>> Similary I don't think I can spot anywhere that you would check
> >>>>>> the other bits which need to be zero in extended EVEX. Nor
> >>>>>> Improper use of EVEX.x4 in certain pre-existing encodings (S/G
> >>>>>> insns at least; perhaps all
> >>>> others are okay).
> >>>>>
> >>>>> Sorry, I can't get you here, what are S/G insns, could you provide
> >>>>> more
> >>>> details here, thanks.
> >>>>
> >>>> S/G is scatter/gather (i.e. AVX2 and AVX512).
> >>>>
> >>> I think you mean EVEX.V4, scatter/gather has VSIB which needs to
> >>> reuse this bit (EVEX.x4 is EVEX.p[10] which is fixed value 1), For
> >>> our current code
> >> we will reassign that bit and now I changed it to check the upper 16
> >> registers of GPR32 , do you think it is ok?
> >>>
> >>> @@ -4252,7 +4252,7 @@ build_apx_evex_prefix (void)
> >>>    if (i.rex2 & REX_R)
> >>>      i.vex.bytes[1] &= 0xef;
> >>>    if (i.vex.register_specifier
> >>> -      && register_number (i.vex.register_specifier) > 0xf)
> >>> +      && (i.vex.register_specifier->reg_flags & RegRex2))
> >>>      i.vex.bytes[3] &= 0xf7;
> >>>    if (i.rex2 & REX_B)
> >>>      i.vex.bytes[1] |= 0x08;
> >>
> >> First of all my comment was disassembly related; you stripped a
> >> little too much context for this to remain visible here. And then I
> >> think I did mean
> >> EVEX.x4 - as you say it needs to be fixed-1 in e.g. S/G insns, and
> >> the checking thereof is what I'm missing.
> >>
> > Ok ,  I will drop the encoder changes, and add an X4 check when instruction
> has vex_vsib* type in decoder.
> 
> You understand though that I used the S/G insns as example only. I didn't do a
> proper check whether any others might also be affected. In particular ones not
> allowing for memory operands might be.
> 
OK, I'll try to add more checks, and add description for them.

Lili.

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

* Re: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-18 11:26                 ` Cui, Lili
@ 2023-10-18 12:06                   ` Jan Beulich
  2023-10-25 16:03                     ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-18 12:06 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 18.10.2023 13:26, Cui, Lili wrote:
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, October 18, 2023 4:06 PM
>>
>> On 18.10.2023 09:16, Cui, Lili wrote:
>>>> On 18.10.2023 04:32, Cui, Lili wrote:
>>>>>>>>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>>>>>>>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
>>>>>>>>> @@ -1,5 +1,6 @@
>>>>>>>>>  # Check illegal movbe in 64bit mode.
>>>>>>>>>  	.text
>>>>>>>>> +	.arch .noapx_f
>>>>>>>>>  foo:
>>>>>>>>>  	movbe	(%rcx),%bl
>>>>>>>>>  	movbe	%ecx,%ebx
>>>>>>>>
>>>>>>>> I don't understand the need for this addition (and hence for the
>>>>>>>> need to change the test's expecations). Like was mentioned on the
>>>>>>>> original
>>>>>>>> AVX10 series, tests like this shall not need modification, or
>>>>>>>> else it indicates people's code also may need ".arch .noapx_f"
>>>>>>>> additions, which I'm sure you agree may not be required. Finally,
>>>>>>>> if testcase expecations like the above would be needed anywhere,
>>>>>>>> please generalize them such that a similar mere addition of a
>>>>>>>> line doesn't require the entire test to be touched. Here this
>>>>>>>> means that while for the diagnostics you of course want exact
>>>>>>>> line number matches, for the actual listing line numbers don't
>>>>>>>> don't need matching
>>>> individually.
>>>>>>>>
>>>>>>>
>>>>>>> Agree with you, but movbe is special, movbe didn't support reg to
>>>>>>> reg
>>>>>> before, but APX enable it. so I added .arch .noapx_f for this invalid test.
>>>>>>
>>>>>> To be honest I didn't really notice this difference so far. That's
>>>>>> somewhat ugly, because people mistakenly using a reg->reg form
>>>>>> would suddenly get an EVEX encoding rather than an error. This will
>>>>>> need some further thought; please mention the "anomaly" explicitly
>>>>>> in the
>>>> description of the respective patch.
>>>>>>
>>>>> SPEC:
>>>>> Note: The promoted versions of MOVBE will be extended to include the
>>>>> “MOVBE reg1, reg2” form (namely, the ModRM.Mod = 3 case) for both
>>>>> opcodes 0xF0 and 0xF1. This extension makes the promotion of BSWAP
>>>>> for
>>>> NDD support unnecessary.
>>>>>
>>>>> I'll add a description of movbe to the patch 2/8 changelog.
>>>>
>>>> Thanks. I did deduce the connection to BSWAP on the way home yesterday.
>>>> Which made me come up with a (spec) question: Wouldn't it make sense
>>>> to name these
>>>> reg->reg forms BSWAP, not MOVBE? It doesn't really matter that they
>>>> reg->use the
>>>> same encoding as the MOVBE (then mem-only) forms. That would then
>>>> eliminate the concern I raised.
>>>>
>>>
>>> If we extend BSWAP, it needs to add the operation of reading ModRM.Mod. I
>> think this is the benefit of this solution now.
>>
>> I'm afraid I don't follow: I don't propose extending the original BSWAP.
>> I merely propose to use the BSWAP mnemonic with the reg->reg form of
>> what's presently called MOVBE. (As an aside, in principle no ModR/M byte
>> would be needed to extend the original BSWAP: One operand is encoded in
>> the base opcode, and the other could be encoded in VVVV. But that would of
>> course needlessly consume an entire row in the opcode table. Hence why I
>> fully understand that the opcode wants sharing with MOVBE.)
>>
> 
> I think it's a trade-off between functionality closer to BSWAP and opcode closer to MOVBE. Since the spec was published and gcc has committed the patch to the community, I think it would be hard to push it to change.

In which case I wonder how one could influence such decisions, when the first
publication of such a spec already means things are set in stone. I was hoping
that only inclusion in the SDM would mean no (easy) changes anymore.

Jan

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-18 11:30                 ` Cui, Lili
@ 2023-10-19 11:58                   ` Cui, Lili
  2023-10-19 15:24                     ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-19 11:58 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils



> -----Original Message-----
> From: Cui, Lili
> Sent: Wednesday, October 18, 2023 7:31 PM
> To: Jan Beulich <jbeulich@suse.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org
> Subject: RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
> 
> > >> Subject: Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
> > >>
> > >> On 18.10.2023 08:31, Cui, Lili wrote:
> > >>>>>> Similary I don't think I can spot anywhere that you would check
> > >>>>>> the other bits which need to be zero in extended EVEX. Nor
> > >>>>>> Improper use of EVEX.x4 in certain pre-existing encodings (S/G
> > >>>>>> insns at least; perhaps all
> > >>>> others are okay).
> > >>>>>
> > >>>>> Sorry, I can't get you here, what are S/G insns, could you
> > >>>>> provide more
> > >>>> details here, thanks.
> > >>>>
> > >>>> S/G is scatter/gather (i.e. AVX2 and AVX512).
> > >>>>
> > >>> I think you mean EVEX.V4, scatter/gather has VSIB which needs to
> > >>> reuse this bit (EVEX.x4 is EVEX.p[10] which is fixed value 1), For
> > >>> our current code
> > >> we will reassign that bit and now I changed it to check the upper
> > >> 16 registers of GPR32 , do you think it is ok?
> > >>>
> > >>> @@ -4252,7 +4252,7 @@ build_apx_evex_prefix (void)
> > >>>    if (i.rex2 & REX_R)
> > >>>      i.vex.bytes[1] &= 0xef;
> > >>>    if (i.vex.register_specifier
> > >>> -      && register_number (i.vex.register_specifier) > 0xf)
> > >>> +      && (i.vex.register_specifier->reg_flags & RegRex2))
> > >>>      i.vex.bytes[3] &= 0xf7;
> > >>>    if (i.rex2 & REX_B)
> > >>>      i.vex.bytes[1] |= 0x08;
> > >>
> > >> First of all my comment was disassembly related; you stripped a
> > >> little too much context for this to remain visible here. And then I
> > >> think I did mean
> > >> EVEX.x4 - as you say it needs to be fixed-1 in e.g. S/G insns, and
> > >> the checking thereof is what I'm missing.
> > >>
> > > Ok ,  I will drop the encoder changes, and add an X4 check when
> > > instruction
> > has vex_vsib* type in decoder.
> >
> > You understand though that I used the S/G insns as example only. I
> > didn't do a proper check whether any others might also be affected. In
> > particular ones not allowing for memory operands might be.
> >
> OK, I'll try to add more checks, and add description for them.
> 

Added some bit checks in the decoder.

--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -11533,6 +11642,13 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
                abort ();
              if (ins->vex.evex)
                {
+                 /* S/G EVEX insns require EVEX.P[10] == 1 */
+                 if (ins->rex2 & REX_X)
+                   {
+                     oappend (ins, "(bad)");
+                     return true;
+                   }
+
@@ -9003,6 +9003,9 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
        case 0x4:
          vex_table_index = EVEX_MAP4;
          ins->evex_type = evex_from_legacy;
+         /* EVEX from legacy instrucions require EVEX.P[2:0] must be 0x04.  */
+         if (!((*ins->codep & 0x7) == 0x04))
+           return  &bad_opcode;
          break;
        case 0x5:
          vex_table_index = EVEX_MAP5;
@@ -9063,6 +9066,22 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
        }

       ins->need_vex = 4;
+
+      /* EVEX from legacy requrie EVEX.P[17:16] must be 0, EVEX.P[23:21] must
+        be 0.
+        EVEX from evex requrie EVEX.P[17:16] must be 0. EVEX.P[23:22] must
+        be 0, EVEX.P[20] must be 0.  */
+      if (ins->evex_type == evex_from_legacy || ins->evex_type == evex_from_vex)
+       {
+         if (!((*ins->codep & 0x3) == 0)
+             || !((*ins->codep >> 6 & 0x3) == 0)
+             || (ins->evex_type == evex_from_legacy
+                 && !((*ins->codep >> 5 & 0x1) == 0))
+             || (ins->evex_type == evex_from_vex
+                 && !ins->vex.b))
+           return &bad_opcode;

Corresponding testcase

        #VSIB vpgatherqq 0x7b(%rbp,%zmm17,8),%zmm16{%k1} set EVEX.P[10] == 0(illegal value).
        .byte 0x62, 0xe2, 0xf9, 0x41, 0x91, 0x84, 0xcd, 0x7b, 0x00, 0x00, 0x00
        .byte 0xff
        #EVEX_MAP4 adox %r25d,%edx set EVEX.P[2:0] == 1 (illegal value).
        .byte 0x62, 0xdd, 0x7e, 0x08, 0x66, 0xd1
        .byte 0xff
        #EVEX_MAP4 adox %r25d,%edx set EVEX.P[17:16] == 1 (illegal value).
        .byte 0x62, 0xdc, 0x7e, 0x09, 0x66, 0xd1
        #EVEX_MAP4 adox %r25d,%edx set EVEX.P[23:21] == 1 (illegal value).
        .byte 0x62, 0xdc, 0x7e, 0x18, 0x66, 0xd1
        #EVEX from VEX enqcmd 0x123(%r31,%rax,4),%r31 EVEX.P[17:16] == 1 (illegal value).
        .byte 0x62, 0x4c, 0x7f, 0x09, 0xf8, 0xbc, 0x87, 0x23, 0x01, 0x00, 0x00
        .byte 0xff
        #EVEX from VEX enqcmd 0x123(%r31,%rax,4),%r31 EVEX.P[23:22] == 1 (illegal value).
        .byte 0x62, 0x4c, 0x7f, 0x18, 0xf8, 0xbc, 0x87, 0x23, 0x01, 0x00, 0x00

Lili.

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-19 11:58                   ` Cui, Lili
@ 2023-10-19 15:24                     ` Jan Beulich
  2023-10-19 16:38                       ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-19 15:24 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 19.10.2023 13:58, Cui, Lili wrote:
>> -----Original Message-----
>> From: Cui, Lili
>> Sent: Wednesday, October 18, 2023 7:31 PM
>>
>> OK, I'll try to add more checks, and add description for them.
>>
> 
> Added some bit checks in the decoder.
> 
> --- a/opcodes/i386-dis.c
> +++ b/opcodes/i386-dis.c
> @@ -11533,6 +11642,13 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
>                 abort ();
>               if (ins->vex.evex)
>                 {
> +                 /* S/G EVEX insns require EVEX.P[10] == 1 */
> +                 if (ins->rex2 & REX_X)
> +                   {
> +                     oappend (ins, "(bad)");
> +                     return true;
> +                   }

I think I understand this, but ...

> @@ -9003,6 +9003,9 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>         case 0x4:
>           vex_table_index = EVEX_MAP4;
>           ins->evex_type = evex_from_legacy;
> +         /* EVEX from legacy instrucions require EVEX.P[2:0] must be 0x04.  */
> +         if (!((*ins->codep & 0x7) == 0x04))
> +           return  &bad_opcode;

... what's this about? Aren't you in a switch() dealing with the exact same
three bits?

> @@ -9063,6 +9066,22 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>         }
> 
>        ins->need_vex = 4;
> +
> +      /* EVEX from legacy requrie EVEX.P[17:16] must be 0, EVEX.P[23:21] must
> +        be 0.
> +        EVEX from evex requrie EVEX.P[17:16] must be 0. EVEX.P[23:22] must
> +        be 0, EVEX.P[20] must be 0.  */
> +      if (ins->evex_type == evex_from_legacy || ins->evex_type == evex_from_vex)
> +       {
> +         if (!((*ins->codep & 0x3) == 0)
> +             || !((*ins->codep >> 6 & 0x3) == 0)
> +             || (ins->evex_type == evex_from_legacy
> +                 && !((*ins->codep >> 5 & 0x1) == 0))
> +             || (ins->evex_type == evex_from_vex
> +                 && !ins->vex.b))
> +           return &bad_opcode;

I guess I'm confused here: So far we don't use EVEX.P[] as notation in
comments. Can you please use the respective field names instead? Also
can you please improve readability by converting !(a == b) into a != b?

Jan

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-19 15:24                     ` Jan Beulich
@ 2023-10-19 16:38                       ` Cui, Lili
  2023-10-20  6:25                         ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-19 16:38 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> >> OK, I'll try to add more checks, and add description for them.
> >>
> >
> > Added some bit checks in the decoder.
> >
> > --- a/opcodes/i386-dis.c
> > +++ b/opcodes/i386-dis.c
> > @@ -11533,6 +11642,13 @@ OP_E_memory (instr_info *ins, int bytemode,
> int sizeflag)
> >                 abort ();
> >               if (ins->vex.evex)
> >                 {
> > +                 /* S/G EVEX insns require EVEX.P[10] == 1 */
> > +                 if (ins->rex2 & REX_X)
> > +                   {
> > +                     oappend (ins, "(bad)");
> > +                     return true;
> > +                   }
> 
> I think I understand this, but ...
> 
> > @@ -9003,6 +9003,9 @@ get_valid_dis386 (const struct dis386 *dp,
> instr_info *ins)
> >         case 0x4:
> >           vex_table_index = EVEX_MAP4;
> >           ins->evex_type = evex_from_legacy;
> > +         /* EVEX from legacy instrucions require EVEX.P[2:0] must be 0x04.  */
> > +         if (!((*ins->codep & 0x7) == 0x04))
> > +           return  &bad_opcode;
> 
> ... what's this about? Aren't you in a switch() dealing with the exact same
> three bits?
> 

Oh, deleted it.

> > @@ -9063,6 +9066,22 @@ get_valid_dis386 (const struct dis386 *dp,
> instr_info *ins)
> >         }
> >
> >        ins->need_vex = 4;
> > +
> > +      /* EVEX from legacy requrie EVEX.P[17:16] must be 0, EVEX.P[23:21]
> must
> > +        be 0.
> > +        EVEX from evex requrie EVEX.P[17:16] must be 0. EVEX.P[23:22] must
> > +        be 0, EVEX.P[20] must be 0.  */
> > +      if (ins->evex_type == evex_from_legacy || ins->evex_type ==
> evex_from_vex)
> > +       {
> > +         if (!((*ins->codep & 0x3) == 0)
> > +             || !((*ins->codep >> 6 & 0x3) == 0)
> > +             || (ins->evex_type == evex_from_legacy
> > +                 && !((*ins->codep >> 5 & 0x1) == 0))
> > +             || (ins->evex_type == evex_from_vex
> > +                 && !ins->vex.b))
> > +           return &bad_opcode;
> 
> I guess I'm confused here: So far we don't use EVEX.P[] as notation in
> comments. Can you please use the respective field names instead? Also can
> you please improve readability by converting !(a == b) into a != b?
> 

Changed it to:

+      /* EVEX from legacy instructions requrie vex.mask_register_specifier, vex.ll
+        and vex.zeroing must be 0.
+        EVEX from evex instrucions requrie vex.mask_register_specifier and vex.ll
+        must be 0.  */
+      if (ins->evex_type == evex_from_legacy || ins->evex_type == evex_from_vex)
+       {
+         if ((*ins->codep & 0x3) != 0
+             || (*ins->codep >> 6 & 0x3) != 0
+             || (ins->evex_type == evex_from_legacy
+                 && (*ins->codep >> 5 & 0x1) != 0)
+             || (ins->evex_type == evex_from_vex
+                 && !ins->vex.b))
+           return &bad_opcode;
+       }

Lili.

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

* Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-19 16:38                       ` Cui, Lili
@ 2023-10-20  6:25                         ` Jan Beulich
  2023-10-22 14:33                           ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-20  6:25 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 19.10.2023 18:38, Cui, Lili wrote:
>>> @@ -9063,6 +9066,22 @@ get_valid_dis386 (const struct dis386 *dp,
>> instr_info *ins)
>>>         }
>>>
>>>        ins->need_vex = 4;
>>> +
>>> +      /* EVEX from legacy requrie EVEX.P[17:16] must be 0, EVEX.P[23:21]
>> must
>>> +        be 0.
>>> +        EVEX from evex requrie EVEX.P[17:16] must be 0. EVEX.P[23:22] must
>>> +        be 0, EVEX.P[20] must be 0.  */
>>> +      if (ins->evex_type == evex_from_legacy || ins->evex_type ==
>> evex_from_vex)
>>> +       {
>>> +         if (!((*ins->codep & 0x3) == 0)
>>> +             || !((*ins->codep >> 6 & 0x3) == 0)
>>> +             || (ins->evex_type == evex_from_legacy
>>> +                 && !((*ins->codep >> 5 & 0x1) == 0))
>>> +             || (ins->evex_type == evex_from_vex
>>> +                 && !ins->vex.b))
>>> +           return &bad_opcode;
>>
>> I guess I'm confused here: So far we don't use EVEX.P[] as notation in
>> comments. Can you please use the respective field names instead? Also can
>> you please improve readability by converting !(a == b) into a != b?
>>
> 
> Changed it to:
> 
> +      /* EVEX from legacy instructions requrie vex.mask_register_specifier, vex.ll
> +        and vex.zeroing must be 0.
> +        EVEX from evex instrucions requrie vex.mask_register_specifier and vex.ll
> +        must be 0.  */
> +      if (ins->evex_type == evex_from_legacy || ins->evex_type == evex_from_vex)
> +       {
> +         if ((*ins->codep & 0x3) != 0
> +             || (*ins->codep >> 6 & 0x3) != 0
> +             || (ins->evex_type == evex_from_legacy
> +                 && (*ins->codep >> 5 & 0x1) != 0)
> +             || (ins->evex_type == evex_from_vex
> +                 && !ins->vex.b))
> +           return &bad_opcode;
> +       }

I guess my earlier response was ambiguous, I'm sorry: I didn't mean the
disassembler's internal names, but the field names as per the SDM (e.g.
EVEX.W). Also (nit) please avoid typo-ing "require" even twice.

Jan

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

* RE: [PATCH 4/8] Support APX NDD
  2023-09-27 14:44   ` Jan Beulich
@ 2023-10-22 14:05     ` Cui, Lili
  2023-10-23  7:12       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-22 14:05 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Kong, Lingling, binutils



> >  gas/config/tc-i386.c                    |  80 ++++++++----
> >  gas/testsuite/gas/i386/x86-64-apx-ndd.d | 165
> > ++++++++++++++++++++++++  gas/testsuite/gas/i386/x86-64-apx-ndd.s |
> > 156 ++++++++++++++++++++++  gas/testsuite/gas/i386/x86-64-pseudos.d |
> > 42 ++++++  gas/testsuite/gas/i386/x86-64-pseudos.s |  43 ++++++
> >  gas/testsuite/gas/i386/x86-64.exp       |   1 +
> >  opcodes/i386-dis-evex-prefix.h          |   4 +-
> >  opcodes/i386-dis-evex-reg.h             | 123 ++++++++++++++++++
> >  opcodes/i386-dis-evex.h                 | 124 +++++++++---------
> >  opcodes/i386-dis.c                      |  47 ++++++-
> >  opcodes/i386-opc.h                      |   1 +
> >  opcodes/i386-opc.tbl                    |  67 ++++++++++
> >  12 files changed, 762 insertions(+), 91 deletions(-)  create mode
> > 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.d
> >  create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd.s
> >
> > diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index
> > 48916bc3846..381e389bb04 100644
> > --- a/gas/config/tc-i386.c
> > +++ b/gas/config/tc-i386.c
> > @@ -2261,8 +2261,9 @@ operand_size_match (const insn_template *t)
> >        unsigned int given = i.operands - j - 1;
> >
> >        /* For FMA4 and XOP insns VEX.W controls just the first two
> > -	 register operands.  */
> > -      if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP))
> > +	 register operands. And APX insns just swap the first operands.  */
> > +      if (is_cpu (t, CpuFMA4) || is_cpu (t, CpuXOP)
> > +	  || (is_cpu (t,CpuAPX_F) && i.operands == 3))
> >  	given = j < 2 ? 1 - j : j;
> 
> In the comment, how about "And APX_F insns just swap the two source
> operands, with the 3rd one being the destination"?
>
 
Done.

> Is the "i.operands == 3" part of the condition really needed? I.e. are there any
> APX_F insns which can make it here but must not take this path? Afaict 2-
> operand insns are fine to go here, and more-than-3-operand insns don't come
> with the D attribute.
> 
You're right, deleted "i.operands == 3".

> Also (nit) there's a missing blank after the comma.
> 

Done.

> > @@ -3876,6 +3877,7 @@ is_any_apx_encoding (void)  {
> >    return i.rex2
> >      || i.rex2_encoding
> > +    || i.tm.opcode_space == SPACE_EVEXMAP4
> >      || (i.vex.register_specifier
> >  	&& i.vex.register_specifier->reg_flags & RegRex2);  } @@ -4204,6
> > +4206,10 @@ build_legacy_insns_with_apx_encoding (void)
> >      }
> >
> >    build_evex_insns_with_extend_evex_prefix ();
> > +
> > +  /* Encode the NDD bit.  */
> > +  if (i.vex.register_specifier)
> > +    i.vex.bytes[3] |= 0x10;
> >  }
> >
> >  static void
> > @@ -7383,26 +7389,31 @@ match_template (char mnem_suffix)
> >  	  overlap1 = operand_type_and (operand_types[0],
> operand_types[1]);
> >  	  if (t->opcode_modifier.d && i.reg_operands == i.operands
> >  	      && !operand_type_all_zero (&overlap1))
> > -	    switch (i.dir_encoding)
> > -	      {
> > -	      case dir_encoding_load:
> > -		if (operand_type_check (operand_types[i.operands - 1],
> anymem)
> > -		    || t->opcode_modifier.regmem)
> > -		  goto check_reverse;
> > -		break;
> > +	    {
> > +	      int isMemOperand = (t->opcode_modifier.vexvvvv
> > +				  && t->opcode_space == SPACE_EVEXMAP4)
> > +				  ? i.operands - 2 : i.operands - 1;
> 
> "is" in the variable name is properly misleading. What you're determining
> here is which operand you want to _check_ for being the memory operand.
> 

Changed to MemOperand.
 
> > +				
> As to the condition, the two side of && may want swapping: In such a
> condition it is generally desirable to have the more restricting part first. Plus
> this may be more neat to express without ?: anyway:
> 
> i.operands - 1 - (t->opcode_space == SPACE_EVEXMAP4 && t-
> >opcode_modifier.vexvvvv)
> 
> (suitably line wrapped of course).
> 

Done.

> > +	      switch (i.dir_encoding)
> > +		{
> > +		case dir_encoding_load:
> > +		  if (operand_type_check (operand_types[isMemOperand],
> anymem)
> > +		      || t->opcode_modifier.regmem)
> > +		    goto check_reverse;
> > +		  break;
> >
> > -	      case dir_encoding_store:
> > -		if (!operand_type_check (operand_types[i.operands - 1],
> anymem)
> > -		    && !t->opcode_modifier.regmem)
> > -		  goto check_reverse;
> > -		break;
> > +		case dir_encoding_store:
> > +		  if (!operand_type_check (operand_types[isMemOperand],
> anymem)
> > +		      && !t->opcode_modifier.regmem)
> > +		    goto check_reverse;
> > +		  break;
> >
> > -	      case dir_encoding_swap:
> > -		goto check_reverse;
> > +		case dir_encoding_swap:
> > +		  goto check_reverse;
> >
> > -	      case dir_encoding_default:
> > -		break;
> > -	      }
> > +		case dir_encoding_default:
> > +		  break;
> > +		}
> > +	    }
> >  	  /* If we want store form, we skip the current load.  */
> >  	  if ((i.dir_encoding == dir_encoding_store
> >  	       || i.dir_encoding == dir_encoding_swap) @@ -7432,11 +7443,13
> > @@ match_template (char mnem_suffix)
> >  		continue;
> >  	      /* Try reversing direction of operands.  */
> >  	      j = is_cpu (t, CpuFMA4)
> > -		  || is_cpu (t, CpuXOP) ? 1 : i.operands - 1;
> > +		  || is_cpu (t, CpuXOP)
> > +		  || is_cpu (t, CpuAPX_F) ? 1 : i.operands - 1;
> >  	      overlap0 = operand_type_and (i.types[0], operand_types[j]);
> >  	      overlap1 = operand_type_and (i.types[j], operand_types[0]);
> >  	      overlap2 = operand_type_and (i.types[1], operand_types[1]);
> > -	      gas_assert (t->operands != 3 || !check_register);
> > +	      gas_assert (t->operands != 3 || !check_register
> > +			  || is_cpu (t,CpuAPX_F));
> 
> Nit: Missing blank again.

Done.

> 
> > @@ -7471,6 +7484,12 @@ match_template (char mnem_suffix)
> >  		  found_reverse_match = Opcode_VexW;
> >  		  goto check_operands_345;
> >  		}
> > +	      else if (is_cpu (t,CpuAPX_F)
> > +		       && i.operands == 3)
> > +		{
> > +		  found_reverse_match = Opcode_APX_NDDD;
> > +		  goto check_operands_345;
> > +		}
> >  	      else if (t->opcode_space != SPACE_BASE
> >  		       && (t->opcode_space != SPACE_0F
> >  			   /* MOV to/from CR/DR/TR, as an exception, follow
> @@ -7636,6
> > +7655,15 @@ match_template (char mnem_suffix)
> >  	 flipping VEX.W.  */
> >        i.tm.opcode_modifier.vexw ^= VEXW0 ^ VEXW1;
> >
> > +      j = i.tm.operand_types[0].bitfield.imm8;
> > +      i.tm.operand_types[j] = operand_types[j + 1];
> > +      i.tm.operand_types[j + 1] = operand_types[j];
> > +      break;
> 
> I'm not overly happy to see this code getting duplicated. Are there any
> encodings at all which have D and and immediate operand? I don't think so, in
> which case this at least wants simplifying. But read on.
> 
> > +    case Opcode_APX_NDDD:
> > +      /* Only the first two register operands need reversing.  */
> > +      i.tm.base_opcode ^= 0x2;
> 
> I think you mean Opcode_D here?
> 
> >        j = i.tm.operand_types[0].bitfield.imm8;
> >        i.tm.operand_types[j] = operand_types[j + 1];
> >        i.tm.operand_types[j + 1] = operand_types[j];
> 
> Taking both remarks together, do we need Opcode_APX_NDDD at all? Can't
> you use the ordinary Opcode_D, with
> 
>     default:
>       /* If we found a reverse match we must alter the opcode direction
> 	 bit and clear/flip the regmem modifier one.  found_reverse_match
> 	 holds bits to change (different for int & float insns).  */
> 
>       i.tm.base_opcode ^= found_reverse_match;
> 
>       if (i.tm.opcode_space == SPACE_EVEXMAP4 && i.operands == 3)
>         goto swap_first_2;
>     ...
>     swap_first_2:
>       j = i.tm.operand_types[0].bitfield.imm8;
>       i.tm.operand_types[j] = operand_types[j + 1];
>       i.tm.operand_types[j + 1] = operand_types[j];
>       break;
> 
> ? (I'm not convinced the i.operands == 3 part of the condition is needed; if at
> all possible it wants omitting.)
> 

Your suggestion is indeed better than before. It worked without "i.operands == 3".

> > @@ -8462,8 +8490,8 @@ process_operands (void)
> >    const reg_entry *default_seg = NULL;
> >
> >    /* We only need to check those implicit registers for instructions
> > -     with 3 operands or less.  */
> > -  if (i.operands <= 3)
> > +     with 4 operands or less.  */
> > +  if (i.operands <= 4)
> >      for (unsigned int j = 0; j < i.operands; j++)
> >        if (i.types[j].bitfield.instance != InstanceNone)
> >  	i.reg_operands--;
> 
> How useful is it to keep the outer if() when 4-operand insns now also need
> checking? There are extremely few 5-operand ones ...
> 

Deleted it.

> > @@ -8825,6 +8853,9 @@ build_modrm_byte (void)
> >        break;
> >    if (v >= dest)
> >      v = ~0;
> > +  if (i.tm.opcode_space == SPACE_EVEXMAP4
> > +      && i.tm.opcode_modifier.vexvvvv)
> > +    v = dest;
> >    if (i.tm.extension_opcode != None)
> >      {
> >        if (dest != source)
> > @@ -9088,6 +9119,9 @@ build_modrm_byte (void)
> >        set_rex_vrex (i.op[op].regs, REX_B, false);
> >  	}
> >
> > +      if (i.tm.opcode_space == SPACE_EVEXMAP4
> > +	  && i.tm.opcode_modifier.vexvvvv)
> > +	dest--;
> >        if (op == dest)
> >  	dest = ~0;
> >        if (op == source)
> 
> These two changes are at the very least problematic with .insn, whose
> behavior may not change. I'd also prefer if we could get away with just one
> change to the function. Did you consider alternatives? We could re- widen
> VexVVVV, such that the value 2 indicates that the destination is encoded there.
> That then also has no chance of conflicting with .insn.
> 
I added value 2 for NDD, if it's ok, I will create another patch to move  (i.tm.extension_opcode != None) to VexVVVVDEST branch, and use value 3 instead of SWAP_SOURCES, maybe name it VexVVVVSRC1, or just VexVVVVOP1, VexVVVVOP2 and VexVVVVOP3?

  /* How to encode VEX.vvvv:
     0: VEX.vvvv must be 1111b.
     1: VEX.vvvv encodes one of the register operands.
     2: VEX.vvvv encodes as the dest register operands.
   */
#define VexVVVVSRC   1
#define VexVVVVDEST  2
  VexVVVV,


  if (i.tm.opcode_modifier.vexvvvv == VexVVVVDEST)
    {
      v = dest;
      dest-- ;
    }
  else if (i.tm.opcode_modifier.vexvvvv == VexVVVVSRC)
    {
      v = source + 1;
      for (v = source + 1; v < dest; ++v)
        if (v != reg_slot)
          break;
      if (i.tm.extension_opcode != None)
        {
          if (dest != source)
            v = dest;
          dest = ~0;
        }
      gas_assert (source < dest);
      if (i.tm.opcode_modifier.operandconstraint == SWAP_SOURCES
          && source != op)
        {
          unsigned int tmp = source;

          source = v;
          v = tmp;
        }
    }
  else
    v = ~0; 

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
> > @@ -0,0 +1,156 @@
> > +# Check 64bit APX NDD instructions with evex prefix encoding
> > +
> > +	.allow_index_reg
> > +	.text
> > +_start:
> > +cmovge 0x90909090(%eax),%edx,%r8d
> > +cmovle 0x90909090(%eax),%edx,%r8d
> > +cmovg  0x90909090(%eax),%edx,%r8d
> > +imul   0x90909(%eax),%edx,%r8d
> > +imul   0x909(%rax,%r31,8),%rdx,%r25
> 
> What about imul by immediate? The present spec is quite unclear there:
> The insn page says {ND=ZU} and the table says 0/1 in the ND column.
>

We don't support it yet, I put it in RFC.
...
2. Support APX ZU   -- In progress
3. Support APX CCMP and CTEST -- In progress
...

About 0/1 in the ND column, it means ZU can be 0/1.

IMUL with opcodes 0x69 and 0x6B in map 0 and SETcc instructions
Although these instructions do not support NDD, the EVEX.ND bit is used to control whether its
destination register has its upper bits (namely, bits [63:OSIZE]) zeroed when OSIZE is 8b or 16b.
That is, if EVEX.ND = 1, the upper bits are always zeroed; otherwise, they keep the old values
when OSIZE is 8b or 16b. For these instructions, EVEX.[V4,V3,V2,V1,V0] must be all zero.

> > +.byte 0x62,0xf4,0xfc,0x08,0xff,0xc0  #inc %rax .byte
> > +0x62,0xf4,0xec,0x08,0xff,0xc0  #bad
> 
> As before, please avoid .byte whenever possible. And please have a more
> detailed comment as to what is being encoded, when .byte cannot be avoided.
> Plus, if at all possible, have "bad" tests live in separate testcases from "good"
> ones.
> 

This case wants to test that inc supports evex format without GPR32,  patch part II 1/6 will cover it. The first case has been removed and the second case has been added to x86-64-apx-evex-promoted-bad.s.
 
> > --- a/opcodes/i386-dis-evex-prefix.h
> > +++ b/opcodes/i386-dis-evex-prefix.h
> 
> Once again I'll reply to disassembler changes separately.
> 

Ok.

> > --- a/opcodes/i386-opc.h
> > +++ b/opcodes/i386-opc.h
> > @@ -960,6 +960,7 @@ typedef struct insn_template
> >  /* The next value is arbitrary, as long as it's non-zero and distinct
> >     from all other values above.  */
> >  #define Opcode_VexW	0xf /* Operand order controlled by VEX.W. */
> > +#define Opcode_APX_NDDD	0x11 /* Direction bit for APX NDD insns. */
> 
> The comment talks of a single bit, but the value has two bits set.
> Plus in the code you also don't use this constant as described by the
> comment. Aiui like for Opcode_VexW the value is really arbitrary, just as long
> as it's different from others. In which case I'd rather suggest using e.g. 0xe (if,
> unlike suggested above, Opcode_D cannot be re-used).
> 
> Also I don't think there's a need for three D-s in the name.
> 

Deleted Opcode_APX_NDDD.

> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> 
> Comments given on the earlier patch apply here (and elsewhere) as well.
> 
> Jan

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

* RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix
  2023-10-20  6:25                         ` Jan Beulich
@ 2023-10-22 14:33                           ` Cui, Lili
  0 siblings, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-10-22 14:33 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils



> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Friday, October 20, 2023 2:26 PM
> To: Cui, Lili <lili.cui@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org
> Subject: Re: [PATCH 2/8] Support APX GPR32 with extend evex prefix
> 
> On 19.10.2023 18:38, Cui, Lili wrote:
> >>> @@ -9063,6 +9066,22 @@ get_valid_dis386 (const struct dis386 *dp,
> >> instr_info *ins)
> >>>         }
> >>>
> >>>        ins->need_vex = 4;
> >>> +
> >>> +      /* EVEX from legacy requrie EVEX.P[17:16] must be 0,
> >>> + EVEX.P[23:21]
> >> must
> >>> +        be 0.
> >>> +        EVEX from evex requrie EVEX.P[17:16] must be 0. EVEX.P[23:22] must
> >>> +        be 0, EVEX.P[20] must be 0.  */
> >>> +      if (ins->evex_type == evex_from_legacy || ins->evex_type ==
> >> evex_from_vex)
> >>> +       {
> >>> +         if (!((*ins->codep & 0x3) == 0)
> >>> +             || !((*ins->codep >> 6 & 0x3) == 0)
> >>> +             || (ins->evex_type == evex_from_legacy
> >>> +                 && !((*ins->codep >> 5 & 0x1) == 0))
> >>> +             || (ins->evex_type == evex_from_vex
> >>> +                 && !ins->vex.b))
> >>> +           return &bad_opcode;
> >>
> >> I guess I'm confused here: So far we don't use EVEX.P[] as notation
> >> in comments. Can you please use the respective field names instead?
> >> Also can you please improve readability by converting !(a == b) into a != b?
> >>
> >
> > Changed it to:
> >
> > +      /* EVEX from legacy instructions requrie vex.mask_register_specifier,
> vex.ll
> > +        and vex.zeroing must be 0.
> > +        EVEX from evex instrucions requrie vex.mask_register_specifier and
> vex.ll
> > +        must be 0.  */
> > +      if (ins->evex_type == evex_from_legacy || ins->evex_type ==
> evex_from_vex)
> > +       {
> > +         if ((*ins->codep & 0x3) != 0
> > +             || (*ins->codep >> 6 & 0x3) != 0
> > +             || (ins->evex_type == evex_from_legacy
> > +                 && (*ins->codep >> 5 & 0x1) != 0)
> > +             || (ins->evex_type == evex_from_vex
> > +                 && !ins->vex.b))
> > +           return &bad_opcode;
> > +       }
> 
> I guess my earlier response was ambiguous, I'm sorry: I didn't mean the
> disassembler's internal names, but the field names as per the SDM (e.g.
> EVEX.W). Also (nit) please avoid typo-ing "require" even twice.
> 
Changed.

+      /* EVEX from legacy instructions require that EVEX.L’L, EVEX.z and the
+        lower 2 bits of EVEX.aaa must be 0.
+        EVEX from evex instrucions require that EVEX.L’L and the lower 2 bits of
+        EVEX.aaa must be 0.  */

Thanks,
Lili.

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

* RE: [PATCH 4/8] Support APX NDD
  2023-09-28  7:57   ` Jan Beulich
@ 2023-10-22 14:57     ` Cui, Lili
  2023-10-24 11:39     ` Cui, Lili
  1 sibling, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-10-22 14:57 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

> Subject: Re: [PATCH 4/8] Support APX NDD
> 
> On 19.09.2023 17:25, Cui, Lili wrote:
> > --- a/opcodes/i386-dis-evex-prefix.h
> > +++ b/opcodes/i386-dis-evex-prefix.h
> > @@ -353,8 +353,8 @@
> >    /* PREFIX_EVEX_MAP4_66 */
> >    {
> >      { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
> > -    { "adoxS",	{ Gdq, Edq }, 0 },
> > -    { "adcxS",	{ Gdq, Edq }, 0 },
> > +    { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
> > +    { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },
> 
> With the OP_VEX() change moved to the earlier patch, you wouldn't need to
> alter again right away what was just added there.
>
Hi Jan,

I just wanted to move the instructions in EVEX involving NDD into this patch. I think they should belong to this NDD patch.  As in your second comment, I also found some instructions for the disassembler missing in the APX evex patch. 

Lili.

> > --- a/opcodes/i386-dis-evex-reg.h
> > +++ b/opcodes/i386-dis-evex-reg.h
> > @@ -56,6 +56,105 @@
> >      { "blsmskS",	{ VexGdq, Edq }, 0 },
> >      { "blsiS",		{ VexGdq, Edq }, 0 },
> >    },
> > +  /* REG_EVEX_MAP4_80 */
> > +  {
> > +    { "addA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "orA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "adcA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "sbbA",	{ VexGb, Eb, Ib }, 0 },
> 
> Aren't these two and other adc/sbb entries required already in the earlier
> patch, for consistency with what you add there on the assembler side?
> 


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

* RE: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-09-28  9:29   ` Jan Beulich
@ 2023-10-23  2:57     ` Hu, Lin1
  2023-10-23  7:23       ` Jan Beulich
  2023-10-23  3:07     ` [PATCH-V2] " Hu, Lin1
  2023-10-23  3:30     ` [PATCH 5/8] [v2] " Hu, Lin1
  2 siblings, 1 reply; 91+ messages in thread
From: Hu, Lin1 @ 2023-10-23  2:57 UTC (permalink / raw)
  To: Beulich, Jan, Cui, Lili; +Cc: Lu, Hongjiu, binutils

Thanks for your reviews, I have responded to your comments. The new patch will be attached to a subsequent email.

BRs,
Lin

-----Original Message-----
From: Jan Beulich <jbeulich@suse.com> 
Sent: Thursday, September 28, 2023 5:30 PM
To: Cui, Lili <lili.cui@intel.com>
Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; Hu, Lin1 <lin1.hu@intel.com>; binutils@sourceware.org
Subject: Re: [PATCH 5/8] Support APX NDD optimized encoding.

On 19.09.2023 17:25, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
>    return 0;
>  }
>  
> +/* Optimize APX NDD insns to non-NDD insns.  */
> +
> +static int

"bool" please when the function merely returns a yes/no indicator.

* Have modified.

> +optimize_NDD_to_nonNDD (const insn_template *t) {
> +  if (t->opcode_modifier.vexvvvv
> +      && t->opcode_space == SPACE_EVEXMAP4
> +      && i.reg_operands >= 2

See the remark near the bottom of the changes to this file: This condition is likely insufficient, as
- further insns allowing ND may not be treated this way (CCMPscc,
  CTESTscc, and one of the CFCMOVcc forms at the very least),
- {nf} uses will want excluding, as it would be merely a waste of
  time to try to re-match with fewer operands.

* CCMPSCC and CTESTSCC’s vexvvvv will be false. I think one of the CFCMOVCC forms is same.

> +      && (i.types[i.operands - 1].bitfield.dword
> +	  || i.types[i.operands - 1].bitfield.qword))

Why do you exclude byte and word operations? Imo what you want to check is class being Reg.

* It looks like I misunderstood the requirements, I've removed it.

> +    {
> +      int tmp_flag = -1;

Either type or name need to change: A variable of this name wants to be "bool". I would have suggested "dupl" as the name, but that how doesn't fit how the variable is used below.

(Of course I'm also not happy with the use of plain int here and below, but that's a wider issue throughout the source file. Still it would be nice if new code properly used unsigned int whenever only non-negative values are to be held.)

* Have changed var name and type.

> +      int dest = i.operands - 1;
> +      int src1 = (i.operands > 2) ? i.operands - 2 : 0;
> +      int src2 = (i.operands > 3) ? i.operands - 3 : 0;
> +
> +      if (i.op[src1].regs == i.op[dest].regs)
> +	tmp_flag = src2;
> +      /* adcx and adox don't have D bit.  */

IMUL doesn't either, yet ought to also be eligible? We have a "commutative"
flag already - can't you extend its use to the purposes you have here? I expect this would simplify ...

> +      else if (i.op[src2].regs == i.op[dest].regs

Just to mention it: Both this and the earlier similar equality check aren't entirely legal, as you haven't previously checked that the respective operands actually are register ones. Analysis tools (like the UB
sanitizer) may choke on this, even if otherwise this shouldn't be a problem from what I can tell.

* Type checking has been added.

> +	       && (t->opcode_modifier.d
> +		   || t->mnem_off == MN_adcx
> +		   || t->mnem_off == MN_adox)
> +	       && (t->mnem_off != MN_sub)
> +	       && (t->mnem_off != MN_sbb))

... this condition.

* I didn't notice the imul, already added it. Have used “commutative” to mark insns that can swap source operands for optimization.

> +	tmp_flag = src1;
> +      if (tmp_flag != -1)
> +	{
> +	  --i.operands;
> +	  --i.reg_operands;
> +	  --i.tm.operands;
> +
> +	  if (tmp_flag != src2)
> +	      swap_2_operands (tmp_flag, src2);

Nit: There's once again something wrong with indentation here.

> +	  return 1;
> +	}
> +    }
> +  return 0;
> +}
> +
>  /* Helper function for the progress() macro in match_template().  */  
> static INLINE enum i386_error progress (enum i386_error new,
>  					enum i386_error last,
> @@ -7562,6 +7602,15 @@ match_template (char mnem_suffix)
>  	     slip through to break.  */
>  	}
>  
> +      /* If we can optimize a NDD insn to non-NDD insn, like
> +	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
> +      if (optimize_NDD_to_nonNDD (t))

I don't think such an optimization should be done without any form of -O.

As to the function name, maybe better optimize_NDD_to_REX2()?

* Refer to the optimization of VOP, temporarily set to O1 will be optimized.  If we use 32bit register, some instructions will be optimized from NDD to rex or legacy. Like cmovg  0x90909090(%eax),%edx,%edx, imul   %rdx,%rax,%rdx in our test.

> +	{
> +	  t = current_templates->start;
> +	  --t;
> +	  continue;

So the decrement is to compensate the loop continuation. Nevertheless imo this wants spelling "t = current_templates->start - 1". Yet like above note that a good UB checker may object to this subtraction of 1, unless you build upon templates making it here not being part of the first group in i386_optab[]. (If any such dependency exists, it needs spelling out in a suitable place, i.e. in particular one that's hard to overlook when doing re-arrangements.)

* I think it’s ok at the moment, because the first group in i386_optab is a legacy mov. I will add a comment in the i386_opc.tbl.

> +	}
> +
>        /* Check if VEX/EVEX encoding requirements can be satisfied.  */
>        if (VEX_check_encoding (t))
>  	{

I also wonder whether this doesn't need moving further down. I expect at least VEX_check_encoding() may need running first.

But I'm worried anyway that this patch comes too early in the series.
{evex} prefixes or use of {nf} would need skipping the optimization attempt, and getting all the conditions right is likely easier to see when all the rest of the infrastructure is in place.

* Have reordered.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
> @@ -0,0 +1,115 @@
> +# Check 64bit APX NDD instructions with optimized encoding
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +inc    %ax,%ax
> +inc    %eax,%eax
> +inc    %rax,%rax
> +inc    %r16,%r16
> +add    %r31b,%r8b,%r8b
> +add    %r31b,%r8b,%r31b
> +addb    %r31b,%r8b,%r8b
> +add    %r31,%r8,%r8
> +addq    %r31,%r8,%r8
> +add    %r31d,%r8d,%r8d
> +addl    %r31d,%r8d,%r8d
> +add    %r31w,%r8w,%r8w
> +addw    %r31w,%r8w,%r8w
> +{store} add    %r31,%r8,%r8
> +{load}  add    %r31,%r8,%r8
> +add    %r31,(%r8),%r31
> +add    (%r31),%r8,%r8
> +add    $0x12344433,%r15,%r15
> +add    $0xfffffffff4332211,%r8,%r8
> +dec    %r17,%r17
> +not    %r17,%r17
> +neg    %r17,%r17
> +sub    %r15,%r17,%r17
> +sub    %r15d,(%r8),%r15d
> +sub    (%r15,%rax,1),%r16,%r16
> +sub    $0x1234,%r30,%r30
> +sbb    %r15,%r17,%r17
> +sbb    %r15,(%r8),%r15
> +sbb    (%r15,%rax,1),%r16,%r16
> +sbb    $0x1234,%r30,%r30
> +adc    %r15,%r17,%r17
> +adc    %r15d,(%r8),%r15d
> +adc    (%r15,%rax,1),%r16,%r16
> +adc    $0x1234,%r30,%r30
> +or    %r15,%r17,%r17
> +or    %r15d,(%r8),%r15d
> +or    (%r15,%rax,1),%r16,%r16
> +or    $0x1234,%r30,%r30
> +xor    %r15,%r17,%r17
> +xor    %r15d,(%r8),%r15d
> +xor    (%r15,%rax,1),%r16,%r16
> +xor    $0x1234,%r30,%r30
> +and    %r15,%r17,%r17
> +and    %r15d,(%r8),%r15d
> +and    (%r15,%rax,1),%r16,%r16
> +and    $0x1234,%r30,%r30
> +and    $0x1234,%r30
> +ror    %r31,%r31
> +rorb   %r31b,%r31b

Please be consistent with omitting (or having) suffixes (further up you simply test both variants, but that's not the case throughout ...

> +ror    $0x2,%r12,%r12
> +rol    %r31,%r31
> +rolb   %r31b,%r31b
> +rol    $0x2,%r12,%r12
> +rcr    %r31,%r31
> +rcrb   %r31b,%r31b
> +rcr    $0x2,%r12b,%r12b
> +rcr    $0x2,%r12,%r12
> +rcl    %r31,%r31
> +rclb   %r31b,%r31b
> +rcl    $0x2,%r12b,%r12b
> +rcl    $0x2,%r12,%r12
> +shl    %r31,%r31
> +shlb   %r31b,%r31b
> +shl    $0x2,%r12b,%r12b
> +shl    $0x2,%r12,%r12
> +sar    %r31,%r31
> +sarb   %r31b,%r31b
> +sar    $0x2,%r12b,%r12b
> +sar    $0x2,%r12,%r12
> +shl    %r31,%r31
> +shlb   %r31b,%r31b
> +shl    $0x2,%r12b,%r12b
> +shl    $0x2,%r12,%r12
> +shr    %r31,%r31
> +shrb   %r31b,%r31b

... here.

* Added suffixes to the command names, I don't understand very well what is suggested inside the parentheses, I just aligned most of the insns' test items.

Jan

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

* [PATCH-V2] Support APX NDD optimized encoding.
  2023-09-28  9:29   ` Jan Beulich
  2023-10-23  2:57     ` Hu, Lin1
@ 2023-10-23  3:07     ` Hu, Lin1
  2023-10-23  3:30     ` [PATCH 5/8] [v2] " Hu, Lin1
  2 siblings, 0 replies; 91+ messages in thread
From: Hu, Lin1 @ 2023-10-23  3:07 UTC (permalink / raw)
  To: binutils; +Cc: JBeulich, hongjiu.lu

The new version of PATCH has been adjusted mainly based on comments.

This patch aims to optimize:

add %r16, %r15, %r15 -> add %r16, %r15

gas/ChangeLog:

	* config/tc-i386.c (optimize_NDD_to_nonNDD): New function.
	(match_template): If we can optimzie APX NDD insns, so rematch
	template.
	* testsuite/gas/i386/x86-64.exp: Add test.
	* testsuite/gas/i386/x86-64-apx-ndd-optimize.d: New test.
	* testsuite/gas/i386/x86-64-apx-ndd-optimize.s: Ditto.
---
 gas/config/tc-i386.c                          |    45 +
 .../gas/i386/x86-64-apx-ndd-optimize.d        |   124 +
 .../gas/i386/x86-64-apx-ndd-optimize.s        |   118 +
 gas/testsuite/gas/i386/x86-64.exp             |     1 +
 opcodes/i386-init.h                           |   524 +-
 opcodes/i386-mnem.h                           |    23 +-
 opcodes/i386-opc.tbl                          |    22 +-
 opcodes/i386-tbl.h                            | 19311 +++++++++-------
 8 files changed, 11414 insertions(+), 8754 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 5a40fdcce40..5e6bb5435e3 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7186,6 +7186,43 @@ check_EgprOperands (const insn_template *t)
   return 0;
 }
 
+/* Optimize APX NDD insns to non-NDD insns.  */
+
+static bool
+optimize_NDD_to_nonNDD (const insn_template *t)
+{
+  if (t->opcode_modifier.vexvvvv
+      && t->opcode_space == SPACE_EVEXMAP4
+      && i.reg_operands >= 2
+      && i.types[i.operands - 1].bitfield.class == Reg)
+    {
+      unsigned int readonly_var = ~0;
+      unsigned int dest = i.operands - 1;
+      unsigned int src1 = (i.operands > 2) ? i.operands - 2 : 0;
+      unsigned int src2 = (i.operands > 3) ? i.operands - 3 : 0;
+
+      if (i.types[src1].bitfield.class == Reg
+	  && i.op[src1].regs == i.op[dest].regs)
+	readonly_var = src2;
+      /* adcx, adox and imul don't have D bit.  */
+      else if (i.types[src2].bitfield.class == Reg
+	       && i.op[src2].regs == i.op[dest].regs
+	       && t->opcode_modifier.commutative)
+	readonly_var = src1;
+      if (readonly_var != (unsigned int) ~0)
+	{
+	  --i.operands;
+	  --i.reg_operands;
+	  --i.tm.operands;
+
+	  if (readonly_var != src2)
+	    swap_2_operands (readonly_var, src2);
+	  return 1;
+	}
+    }
+  return 0;
+}
+
 /* Helper function for the progress() macro in match_template().  */
 static INLINE enum i386_error progress (enum i386_error new,
 					enum i386_error last,
@@ -7706,6 +7743,14 @@ match_template (char mnem_suffix)
 	  i.memshift = memshift;
 	}
 
+      /* If we can optimize a NDD insn to non-NDD insn, like
+	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
+      if (optimize == 1 && optimize_NDD_to_nonNDD (t))
+	{
+	  t = current_templates->start - 1;
+	  continue;
+	}
+
       /* We've found a match; break out of loop.  */
       break;
     }
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
new file mode 100644
index 00000000000..f23b2b127b6
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
@@ -0,0 +1,124 @@
+#as: -O1
+#objdump: -drw
+#name: x86-64 APX NDD optimized encoding
+#source: x86-64-apx-ndd-optimize.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*d5 19 ff c7          	inc    %r31
+\s*[a-f0-9]+:\s*d5 11 fe c7          	inc    %r31b
+\s*[a-f0-9]+:\s*d5 4d 01 f8          	add    %r31,%r8
+\s*[a-f0-9]+:\s*d5 45 00 f8          	add    %r31b,%r8b
+\s*[a-f0-9]+:\s*d5 4d 01 f8          	add    %r31,%r8
+\s*[a-f0-9]+:\s*d5 1d 03 c7          	add    %r31,%r8
+\s*[a-f0-9]+:\s*d5 4d 03 38          	add    \(%r8\),%r31
+\s*[a-f0-9]+:\s*d5 1d 03 07          	add    \(%r31\),%r8
+\s*[a-f0-9]+:\s*49 81 c7 33 44 34 12 	add    \$0x12344433,%r15
+\s*[a-f0-9]+:\s*49 81 c0 11 22 33 f4 	add    \$0xfffffffff4332211,%r8
+\s*[a-f0-9]+:\s*d5 18 ff c9          	dec    %r17
+\s*[a-f0-9]+:\s*d5 10 fe c9          	dec    %r17b
+\s*[a-f0-9]+:\s*d5 18 f7 d1          	not    %r17
+\s*[a-f0-9]+:\s*d5 10 f6 d1          	not    %r17b
+\s*[a-f0-9]+:\s*d5 18 f7 d9          	neg    %r17
+\s*[a-f0-9]+:\s*d5 10 f6 d9          	neg    %r17b
+\s*[a-f0-9]+:\s*d5 1c 29 f9          	sub    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 28 f9          	sub    %r15b,%r17b
+\s*[a-f0-9]+:\s*62 54 84 18 29 38    	sub    %r15,\(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 2b 04 07       	sub    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 ee 34 12 00 00 	sub    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 19 f9          	sbb    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 18 f9          	sbb    %r15b,%r17b
+\s*[a-f0-9]+:\s*62 54 84 18 19 38    	sbb    %r15,\(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 1b 04 07       	sbb    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 de 34 12 00 00 	sbb    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 11 f9          	adc    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 10 f9          	adc    %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 13 38             	adc    \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 13 04 07       	adc    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 d6 34 12 00 00 	adc    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 09 f9          	or     %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 08 f9          	or     %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 0b 38             	or     \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 0b 04 07       	or     \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 ce 34 12 00 00 	or     \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 31 f9          	xor    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 30 f9          	xor    %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 33 38             	xor    \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 33 04 07       	xor    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 f6 34 12 00 00 	xor    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 21 f9          	and    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 20 f9          	and    %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 23 38             	and    \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 23 04 07       	and    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 11 81 e6 34 12 00 00 	and    \$0x1234,%r30d
+\s*[a-f0-9]+:\s*d5 19 d1 cf          	ror    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 cf          	ror    %r31b
+\s*[a-f0-9]+:\s*49 c1 cc 02          	ror    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 cc 02          	ror    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 c7          	rol    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 c7          	rol    %r31b
+\s*[a-f0-9]+:\s*49 c1 c4 02          	rol    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 c4 02          	rol    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 df          	rcr    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 df          	rcr    %r31b
+\s*[a-f0-9]+:\s*49 c1 dc 02          	rcr    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 dc 02          	rcr    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 d7          	rcl    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 d7          	rcl    %r31b
+\s*[a-f0-9]+:\s*49 c1 d4 02          	rcl    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 d4 02          	rcl    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 e7          	shl    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 e7          	shl    %r31b
+\s*[a-f0-9]+:\s*49 c1 e4 02          	shl    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 e4 02          	shl    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 ff          	sar    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 ff          	sar    %r31b
+\s*[a-f0-9]+:\s*49 c1 fc 02          	sar    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 fc 02          	sar    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 e7          	shl    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 e7          	shl    %r31b
+\s*[a-f0-9]+:\s*49 c1 e4 02          	shl    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 e4 02          	shl    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 ef          	shr    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 ef          	shr    %r31b
+\s*[a-f0-9]+:\s*49 c1 ec 02          	shr    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 ec 02          	shr    \$0x2,%r12b
+\s*[a-f0-9]+:\s*62 74 9c 18 24 20 01 	shld   \$0x1,%r12,\(%rax\),%r12
+\s*[a-f0-9]+:\s*4d 0f a4 c4 02       	shld   \$0x2,%r8,%r12
+\s*[a-f0-9]+:\s*62 74 b4 18 a5 08    	shld   %cl,%r9,\(%rax\),%r9
+\s*[a-f0-9]+:\s*d5 9c a5 e0          	shld   %cl,%r12,%r16
+\s*[a-f0-9]+:\s*62 7c 94 18 a5 2c 83 	shld   %cl,%r13,\(%r19,%rax,4\),%r13
+\s*[a-f0-9]+:\s*62 74 9c 18 2c 20 01 	shrd   \$0x1,%r12,\(%rax\),%r12
+\s*[a-f0-9]+:\s*4d 0f ac ec 01       	shrd   \$0x1,%r13,%r12
+\s*[a-f0-9]+:\s*62 74 b4 18 ad 08    	shrd   %cl,%r9,\(%rax\),%r9
+\s*[a-f0-9]+:\s*d5 9c ad e0          	shrd   %cl,%r12,%r16
+\s*[a-f0-9]+:\s*62 7c 94 18 ad 2c 83 	shrd   %cl,%r13,\(%r19,%rax,4\),%r13
+\s*[a-f0-9]+:\s*66 4d 0f 38 f6 c7    	adcx   %r15,%r8
+\s*[a-f0-9]+:\s*62 14 f9 08 66 04 3f 	adcx   \(%r15,%r31,1\),%r8
+\s*[a-f0-9]+:\s*66 4d 0f 38 f6 c1    	adcx   %r9,%r8
+\s*[a-f0-9]+:\s*f3 4d 0f 38 f6 c7    	adox   %r15,%r8
+\s*[a-f0-9]+:\s*62 14 fa 08 66 04 3f 	adox   \(%r15,%r31,1\),%r8
+\s*[a-f0-9]+:\s*f3 4d 0f 38 f6 c1    	adox   %r9,%r8
+\s*[a-f0-9]+:\s*67 0f 40 90 90 90 90 90 	cmovo  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 41 90 90 90 90 90 	cmovno -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 42 90 90 90 90 90 	cmovb  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 43 90 90 90 90 90 	cmovae -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 44 90 90 90 90 90 	cmove  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 45 90 90 90 90 90 	cmovne -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 46 90 90 90 90 90 	cmovbe -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 47 90 90 90 90 90 	cmova  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 48 90 90 90 90 90 	cmovs  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 49 90 90 90 90 90 	cmovns -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4a 90 90 90 90 90 	cmovp  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4b 90 90 90 90 90 	cmovnp -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4c 90 90 90 90 90 	cmovl  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4d 90 90 90 90 90 	cmovge -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4e 90 90 90 90 90 	cmovle -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4f 90 90 90 90 90 	cmovg  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f af 90 09 09 09 00 	imul   0x90909\(%eax\),%edx
+\s*[a-f0-9]+:\s*d5 aa af 94 f8 09 09 00 00 	imul   0x909\(%rax,%r31,8\),%rdx
+\s*[a-f0-9]+:\s*48 0f af d0          	imul   %rax,%rdx
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
new file mode 100644
index 00000000000..0f5c15a2f9c
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
@@ -0,0 +1,118 @@
+# Check 64bit APX NDD instructions with optimized encoding
+
+	.allow_index_reg
+	.text
+_start:
+inc    %r31,%r31
+incb   %r31b,%r31b
+add    %r31,%r8,%r8
+addb   %r31b,%r8b,%r8b
+{store} add    %r31,%r8,%r8
+{load}  add    %r31,%r8,%r8
+add    %r31,(%r8),%r31
+add    (%r31),%r8,%r8
+add    $0x12344433,%r15,%r15
+add    $0xfffffffff4332211,%r8,%r8
+dec    %r17,%r17
+decb   %r17b,%r17b
+not    %r17,%r17
+notb   %r17b,%r17b
+neg    %r17,%r17
+negb   %r17b,%r17b
+sub    %r15,%r17,%r17
+subb   %r15b,%r17b,%r17b
+sub    %r15,(%r8),%r15
+sub    (%r15,%rax,1),%r16,%r16
+sub    $0x1234,%r30,%r30
+sbb    %r15,%r17,%r17
+sbbb   %r15b,%r17b,%r17b
+sbb    %r15,(%r8),%r15
+sbb    (%r15,%rax,1),%r16,%r16
+sbb    $0x1234,%r30,%r30
+adc    %r15,%r17,%r17
+adcb   %r15b,%r17b,%r17b
+adc    %r15,(%r8),%r15
+adc    (%r15,%rax,1),%r16,%r16
+adc    $0x1234,%r30,%r30
+or     %r15,%r17,%r17
+orb    %r15b,%r17b,%r17b
+or     %r15,(%r8),%r15
+or     (%r15,%rax,1),%r16,%r16
+or     $0x1234,%r30,%r30
+xor    %r15,%r17,%r17
+xorb   %r15b,%r17b,%r17b
+xor    %r15,(%r8),%r15
+xor    (%r15,%rax,1),%r16,%r16
+xor    $0x1234,%r30,%r30
+and    %r15,%r17,%r17
+andb   %r15b,%r17b,%r17b
+and    %r15,(%r8),%r15
+and    (%r15,%rax,1),%r16,%r16
+and    $0x1234,%r30,%r30
+ror    %r31,%r31
+rorb   %r31b,%r31b
+ror    $0x2,%r12,%r12
+rorb   $0x2,%r12b,%r12b
+rol    %r31,%r31
+rolb   %r31b,%r31b
+rol    $0x2,%r12,%r12
+rolb   $0x2,%r12b,%r12b
+rcr    %r31,%r31
+rcrb   %r31b,%r31b
+rcr    $0x2,%r12,%r12
+rcrb   $0x2,%r12b,%r12b
+rcl    %r31,%r31
+rclb   %r31b,%r31b
+rcl    $0x2,%r12,%r12
+rclb   $0x2,%r12b,%r12b
+shl    %r31,%r31
+shlb   %r31b,%r31b
+shl    $0x2,%r12,%r12
+shlb   $0x2,%r12b,%r12b
+sar    %r31,%r31
+sarb   %r31b,%r31b
+sar    $0x2,%r12,%r12
+sarb   $0x2,%r12b,%r12b
+shl    %r31,%r31
+shlb   %r31b,%r31b
+shl    $0x2,%r12,%r12
+shlb   $0x2,%r12b,%r12b
+shr    %r31,%r31
+shrb   %r31b,%r31b
+shr    $0x2,%r12,%r12
+shrb   $0x2,%r12b,%r12b
+shld   $0x1,%r12,(%rax),%r12
+shld   $0x2,%r8,%r12,%r12
+shld   %cl,%r9,(%rax),%r9
+shld   %cl,%r12,%r16,%r16
+shld   %cl,%r13,(%r19,%rax,4),%r13
+shrd   $0x1,%r12,(%rax),%r12
+shrd   $0x1,%r13,%r12,%r12
+shrd   %cl,%r9,(%rax),%r9
+shrd   %cl,%r12,%r16,%r16
+shrd   %cl,%r13,(%r19,%rax,4),%r13
+adcx   %r15,%r8,%r8
+adcx   (%r15,%r31,1),%r8,%r8
+adcx   %r8,%r9,%r8
+adox   %r15,%r8,%r8
+adox   (%r15,%r31,1),%r8,%r8
+adox   %r8,%r9,%r8
+cmovo  0x90909090(%eax),%edx,%edx
+cmovno 0x90909090(%eax),%edx,%edx
+cmovb  0x90909090(%eax),%edx,%edx
+cmovae 0x90909090(%eax),%edx,%edx
+cmove  0x90909090(%eax),%edx,%edx
+cmovne 0x90909090(%eax),%edx,%edx
+cmovbe 0x90909090(%eax),%edx,%edx
+cmova  0x90909090(%eax),%edx,%edx
+cmovs  0x90909090(%eax),%edx,%edx
+cmovns 0x90909090(%eax),%edx,%edx
+cmovp  0x90909090(%eax),%edx,%edx
+cmovnp 0x90909090(%eax),%edx,%edx
+cmovl  0x90909090(%eax),%edx,%edx
+cmovge 0x90909090(%eax),%edx,%edx
+cmovle 0x90909090(%eax),%edx,%edx
+cmovg  0x90909090(%eax),%edx,%edx
+imul   0x90909(%eax),%edx,%edx
+imul   0x909(%rax,%r31,8),%rdx,%rdx
+imul   %rdx,%rax,%rdx
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 07cb716d2a5..38fbed8a388 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -549,6 +549,7 @@ run_dump_test "x86-64-optimize-6"
 run_list_test "x86-64-optimize-7a" "-I${srcdir}/$subdir -march=+noavx -al"
 run_dump_test "x86-64-optimize-7b"
 run_list_test "x86-64-optimize-8" "-I${srcdir}/$subdir -march=+noavx2 -al"
+run_dump_test "x86-64-apx-ndd-optimize"
 run_dump_test "x86-64-align-branch-1a"
 run_dump_test "x86-64-align-branch-1b"
 run_dump_test "x86-64-align-branch-1c"
diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h
index 446a2d8a8cc..9080ebaeb33 100644
--- a/opcodes/i386-init.h
+++ b/opcodes/i386-init.h
@@ -26,7 +26,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_286_FLAGS \
   { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -36,7 +36,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_386_FLAGS \
   { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -46,7 +46,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_486_FLAGS \
   { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -56,7 +56,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_586_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -66,7 +66,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_686_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
@@ -76,7 +76,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CMOV_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -86,7 +86,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FXSR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -96,7 +96,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLFLUSH_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -106,7 +106,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_NOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -116,7 +116,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SYSCALL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -126,7 +126,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_8087_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -136,7 +136,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_687_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
@@ -146,7 +146,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FISTTP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -156,7 +156,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -166,7 +166,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
@@ -176,7 +176,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -186,7 +186,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -196,7 +196,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PADLOCK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
@@ -206,7 +206,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SVME_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
@@ -216,7 +216,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -226,7 +226,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -236,7 +236,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -246,7 +246,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE4A_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -256,7 +256,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LZCNT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -266,7 +266,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_POPCNT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -276,7 +276,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MONITOR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -286,7 +286,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE4_1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -296,7 +296,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE4_2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -306,7 +306,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -316,7 +316,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512CD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -326,7 +326,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512ER_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -336,7 +336,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512PF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -346,7 +346,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512DQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -356,7 +356,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512BW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -366,7 +366,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_IAMCU_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -376,7 +376,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XSAVE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -386,7 +386,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XSAVEOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -396,7 +396,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -406,7 +406,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PCLMULQDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -416,7 +416,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -426,7 +426,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FMA4_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -436,7 +436,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -446,7 +446,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LWP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -456,7 +456,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -466,7 +466,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TBM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -476,7 +476,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MOVBE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -486,7 +486,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CX16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -496,7 +496,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LAHF_SAHF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -506,7 +506,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_EPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -516,7 +516,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDTSCP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -526,7 +526,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FSGSBASE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -536,7 +536,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDRND_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -546,7 +546,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_F16C_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -556,7 +556,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BMI2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -566,7 +566,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RTM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -576,7 +576,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_INVPCID_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -586,7 +586,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VMFUNC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -596,7 +596,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MPX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -606,7 +606,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDSEED_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -616,7 +616,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ADX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -626,7 +626,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PRFCHW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -636,7 +636,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SMAP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -646,7 +646,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SHA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -656,7 +656,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SHA512_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -666,7 +666,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SM3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -676,7 +676,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SM4_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -686,7 +686,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLFLUSHOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -696,7 +696,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XSAVES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -706,7 +706,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XSAVEC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -716,7 +716,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PREFETCHWT1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -726,7 +726,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SE1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -736,7 +736,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLWB_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -746,7 +746,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -756,7 +756,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512VBMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -766,7 +766,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_4FMAPS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -776,7 +776,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_4VNNIW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -786,7 +786,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_VPOPCNTDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -796,7 +796,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_VBMI2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -806,7 +806,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -816,7 +816,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_BITALG_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -826,7 +826,7 @@
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_BF16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -836,7 +836,7 @@
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_VP2INTERSECT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -846,7 +846,7 @@
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_TDX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -856,7 +856,7 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -866,7 +866,7 @@
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -876,7 +876,7 @@
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_PREFETCHI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -886,7 +886,7 @@
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -896,7 +896,7 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_VNNI_INT8_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -906,7 +906,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_VNNI_INT16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -916,7 +916,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CMPCCXADD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -926,7 +926,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_WRMSRNS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -936,7 +936,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MSRLIST_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -946,7 +946,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_NE_CONVERT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -956,7 +956,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RAO_INT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -966,7 +966,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FRED_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -976,7 +976,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LKGS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -986,7 +986,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MWAITX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -996,7 +996,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLZERO_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1006,7 +1006,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_OSPKE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1016,7 +1016,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDPID_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1026,7 +1026,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PTWRITE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1036,7 +1036,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_IBT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1046,7 +1046,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SHSTK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1056,7 +1056,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_INT8_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1066,7 +1066,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_BF16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1076,7 +1076,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1086,7 +1086,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_COMPLEX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1096,7 +1096,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_TILE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1106,7 +1106,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_GFNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -1116,7 +1116,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VAES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1126,7 +1126,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VPCLMULQDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1136,7 +1136,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_WBNOINVD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1146,7 +1146,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PCONFIG_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1156,7 +1156,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PBNDKB_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1166,7 +1166,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_WAITPKG_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1176,7 +1176,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_UINTR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1186,7 +1186,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLDEMOTE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1196,7 +1196,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MOVDIRI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1206,7 +1206,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MOVDIR64B_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1216,7 +1216,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ENQCMD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1226,7 +1226,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SERIALIZE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1236,7 +1236,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDPRU_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1246,7 +1246,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MCOMMIT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1256,7 +1256,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SEV_ES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
@@ -1266,7 +1266,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TSXLDTRK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1276,7 +1276,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_KL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -1286,7 +1286,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_WIDEKL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -1296,7 +1296,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_HRESET_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1306,7 +1306,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_INVLPGB_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1316,7 +1316,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TLBSYNC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1326,7 +1326,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SNP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
@@ -1336,7 +1336,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RMPQUERY_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
@@ -1346,7 +1346,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_287_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1356,7 +1356,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_387_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1366,7 +1366,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_3DNOW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1376,7 +1376,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_3DNOWA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1386,7 +1386,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_64_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1396,7 +1396,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1406,7 +1406,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_HLE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1416,7 +1416,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512F_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1426,7 +1426,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0 } }
+      1, 0, 0, 0, 0 } }
 
 #define CPU_AVX512VL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1436,7 +1436,17 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 1, 0, 0 } }
+      1, 1, 0, 0, 0 } }
+
+#define CPU_APX_F_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 1, 0, 0 } }
 
 #define CPU_UNKNOWN_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
@@ -1446,7 +1456,7 @@
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
-      1, 1, 0, 0 } }
+      1, 1, 1, 0, 0 } }
 
 #define CPU_GENERIC32_FLAGS \
   { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1456,7 +1466,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_GENERIC64_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, \
@@ -1466,7 +1476,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_NONE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1476,7 +1486,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PENTIUMPRO_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
@@ -1486,7 +1496,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_P2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, \
@@ -1496,7 +1506,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_P3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, \
@@ -1506,7 +1516,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_P4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, \
@@ -1516,7 +1526,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_NOCONA_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
@@ -1526,7 +1536,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CORE_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
@@ -1536,7 +1546,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CORE2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
@@ -1546,7 +1556,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_COREI7_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
@@ -1556,7 +1566,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_K6_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1566,7 +1576,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_K6_2_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1576,7 +1586,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ATHLON_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, \
@@ -1586,7 +1596,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_K8_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, \
@@ -1596,7 +1606,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMDFAM10_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
@@ -1606,7 +1616,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1616,7 +1626,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1626,7 +1636,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1636,7 +1646,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1646,7 +1656,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1656,7 +1666,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1666,7 +1676,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1676,7 +1686,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, \
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1686,7 +1696,7 @@
       1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, \
       1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, \
-      1, 1, 0, 0 } }
+      1, 1, 0, 0, 0 } }
 
 #define CPU_BTVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1696,7 +1706,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BTVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, \
@@ -1706,7 +1716,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ABM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1716,7 +1726,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX10_1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1726,7 +1736,7 @@
       1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 1, 0, 0 } }
+      1, 1, 0, 0, 0 } }
 
 #define CPU_TSX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1736,7 +1746,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FXSR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1746,7 +1756,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_8087_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -1756,7 +1766,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_687_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -1766,7 +1776,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FISTTP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
@@ -1776,7 +1786,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_MMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1786,7 +1796,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
@@ -1796,7 +1806,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
@@ -1806,7 +1816,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
@@ -1816,7 +1826,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SVME_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
@@ -1826,7 +1836,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_VMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1836,7 +1846,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1846,7 +1856,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE4A_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1856,7 +1866,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE4_1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1866,7 +1876,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE4_2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1876,7 +1886,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1886,7 +1896,7 @@
       1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 1, 0, 0 } }
+      1, 1, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512CD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1896,7 +1906,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512ER_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1906,7 +1916,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512PF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1916,7 +1926,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512DQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1926,7 +1936,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512BW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1936,7 +1946,7 @@
       1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_IAMCU_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1946,7 +1956,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XSAVE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1956,7 +1966,7 @@
       1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 1, 0, 0 } }
+      1, 1, 1, 0, 0 } }
 
 #define CPU_ANY_XSAVEOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1966,7 +1976,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1976,7 +1986,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_PCLMULQDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1986,7 +1996,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1996,7 +2006,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FMA4_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2006,7 +2016,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2016,7 +2026,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_LWP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2026,7 +2036,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_EPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2036,7 +2046,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_F16C_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2046,7 +2056,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_RTM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2056,7 +2066,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_VMFUNC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2066,7 +2076,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_MPX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2076,7 +2086,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SHA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2086,7 +2096,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SHA512_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2096,7 +2106,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SM3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2106,7 +2116,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SM4_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2116,7 +2126,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XSAVES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2126,7 +2136,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XSAVEC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2136,7 +2146,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2146,7 +2156,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512VBMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2156,7 +2166,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_4FMAPS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2166,7 +2176,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_4VNNIW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2176,7 +2186,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_VPOPCNTDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2186,7 +2196,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_VBMI2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2196,7 +2206,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2206,7 +2216,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_BITALG_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2216,7 +2226,7 @@
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_BF16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2226,7 +2236,7 @@
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_VP2INTERSECT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2236,7 +2246,7 @@
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2246,7 +2256,7 @@
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2256,7 +2266,7 @@
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX_IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2266,7 +2276,7 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX_VNNI_INT8_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2276,7 +2286,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX_VNNI_INT16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2286,7 +2296,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX_NE_CONVERT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2296,7 +2306,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FRED_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2306,7 +2316,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_LKGS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2316,7 +2326,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_OSPKE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2326,7 +2336,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_INT8_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2336,7 +2346,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_BF16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2346,7 +2356,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2356,7 +2366,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_COMPLEX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2366,7 +2376,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_TILE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2376,7 +2386,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_GFNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2386,7 +2396,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_VAES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2396,7 +2406,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_VPCLMULQDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2406,7 +2416,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SEV_ES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2416,7 +2426,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_TSXLDTRK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2426,7 +2436,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_KL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2436,7 +2446,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_WIDEKL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2446,7 +2456,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SNP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2456,7 +2466,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_RMPQUERY_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2466,7 +2476,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_287_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -2476,7 +2486,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_387_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -2486,7 +2496,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_3DNOW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2496,7 +2506,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_3DNOWA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2506,7 +2516,7 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
-      0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2516,7 +2526,7 @@
       1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 1, 0, 0 } }
+      1, 1, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512F_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2526,7 +2536,7 @@
       1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 1, 0, 0 } }
+      1, 1, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512VL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2536,5 +2546,15 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0 } }
+      0, 1, 0, 0, 0 } }
+
+#define CPU_ANY_APX_F_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 1, 0, 0 } }
 
diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h
index 5d0b4d10469..8fe7f19f91e 100644
--- a/opcodes/i386-mnem.h
+++ b/opcodes/i386-mnem.h
@@ -2349,14 +2349,15 @@ extern const char i386_mnemonics[];
 #define MN_rexyz 0x470a
 #define MN_rexxyz 0x4710
 #define MN__disp32_ 0x4717
-#define MN__vex2_ 0x4720
-#define MN__vex3_ 0x4727
-#define MN__disp16_ 0x472e
-#define MN__disp8_ 0x4737
-#define MN__load_ 0x473f
-#define MN__store_ 0x4746
-#define MN__nooptimize_ 0x474e
-#define MN__rex_ 0x475b
-#define MN__evex_ 0x4761
-#define MN__vex_ 0x4768
-#define MN__insn 0x476e
+#define MN__rex2_ 0x4720
+#define MN__vex2_ 0x4727
+#define MN__vex3_ 0x472e
+#define MN__disp16_ 0x4735
+#define MN__disp8_ 0x473e
+#define MN__load_ 0x4746
+#define MN__store_ 0x474d
+#define MN__nooptimize_ 0x4755
+#define MN__rex_ 0x4762
+#define MN__evex_ 0x4768
+#define MN__vex_ 0x476f
+#define MN__insn 0x4775
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index f68940b9b4a..3c255e79a91 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -145,6 +145,8 @@
 // The EVEX purpose of StaticRounding appears only together with SAE. Re-use
 // the bit to mark commutative VEX encodings where swapping the source
 // operands may allow to switch from 3-byte to 2-byte VEX encoding.
+// And re-use the bit to mark some NDD insns that swapping the source operands
+// may allow to switch from 3 operands to 2 operands.
 #define C StaticRounding
 
 #define FP 387|287|8087
@@ -166,6 +168,10 @@
 
 ### MARKER ###
 
+// Please don't add a NDD insn which may be optimized to a REX2 insn before the
+// mov. It may result that a good UB checker object the behavior
+// "template->start - 1" at the end of match_template.
+
 // 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, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
@@ -295,7 +301,7 @@ add, 0x0, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg3
 add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 add, 0x4, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 add, 0x80/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-add, 0x0, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+add, 0x0, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 add, 0x83/0, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 add, 0x80/0, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
 
@@ -339,7 +345,7 @@ and, 0x20, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|
 and, 0x83/4, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 and, 0x24, 0, W|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 and, 0x80/4, 0, W|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-and, 0x20, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+and, 0x20, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 and, 0x83/4, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 and, 0x80/4, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -347,7 +353,7 @@ or, 0x8, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Re
 or, 0x83/1, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 or, 0xc, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 or, 0x80/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-or, 0x8, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+or, 0x8, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 or, 0x83/1, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 or, 0x80/1, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -355,7 +361,7 @@ xor, 0x30, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|
 xor, 0x83/6, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 xor, 0x34, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 xor, 0x80/6, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-xor, 0x30, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+xor, 0x30, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 xor, 0x83/6, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 xor, 0x80/6, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -369,7 +375,7 @@ adc, 0x80/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|R
 adc, 0x10, APX_F, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 adc, 0x83/2, APX_F, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 adc, 0x80/2, APX_F, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-adc, 0x10, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+adc, 0x10, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 adc, 0x83/2, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 adc, 0x80/2, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -412,7 +418,7 @@ cqto, 0x99, x64, Size64|NoSuf, {}
 mul, 0xf6/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 imul, 0xf6/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 imul, 0xfaf, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64 }
-imul, 0xaf, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
+imul, 0xaf, APX_F, C|Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 imul, 0x6b, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 imul, 0x69, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 // imul with 2 operands mimics imul with 3 by putting the register in
@@ -2126,10 +2132,10 @@ xstore, 0xfa7c0, PadLock, NoSuf|RepPrefixOk, {}
 // Multy-precision Add Carry, rdseed instructions.
 adcx, 0x660f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 adcx, 0x6666, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-adcx, 0x6666, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+adcx, 0x6666, ADX|APX_F, C|Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 adox, 0xf30f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 adox, 0xf366, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-adox, 0xf366, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+adox, 0xf366, ADX|APX_F, C|Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 rdseed, 0xfc7/7, RdSeed, Modrm|NoSuf, { Reg16|Reg32|Reg64 }
 
 // SMAP instructions.
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index 4c677d1f485..d7b0cf44867 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -27,8 +27,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0xa0, 2, SPACE_BASE, None,
     { 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -36,8 +36,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0xa0, 2, SPACE_BASE, None,
     { 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -45,8 +45,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x88, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -54,8 +54,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0xb0, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -63,8 +63,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0xc6, 2, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -72,8 +72,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0xb8, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -81,8 +81,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x8c, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -90,8 +90,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x8c, 2, SPACE_BASE, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -99,8 +99,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x8e, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -108,8 +108,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x20, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -117,8 +117,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x20, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -126,8 +126,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x21, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -135,8 +135,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x21, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -144,8 +144,8 @@ static const insn_template i386_optab[] =
   { MN_mov, 0x24, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -153,8 +153,8 @@ static const insn_template i386_optab[] =
   { MN_movabs, 0xa0, 2, SPACE_BASE, None,
     { 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -162,8 +162,8 @@ static const insn_template i386_optab[] =
   { MN_movabs, 0xb8, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -171,17 +171,35 @@ static const insn_template i386_optab[] =
   { MN_movbe, 0xf0, 2, SPACE_0F38, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_movbe, 0xf0, 2, SPACE_0F38, None,
+    { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_movbe, 0x60, 2, SPACE_EVEXMAP4, None,
+    { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 47, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movsb, 0xbe, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -189,8 +207,8 @@ static const insn_template i386_optab[] =
   { MN_movsw, 0xbf, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -198,8 +216,8 @@ static const insn_template i386_optab[] =
   { MN_movsl, 0x63, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -207,8 +225,8 @@ static const insn_template i386_optab[] =
   { MN_movsx, 0xbe, 2, SPACE_0F, None,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -216,8 +234,8 @@ static const insn_template i386_optab[] =
   { MN_movsx, 0x63, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -225,8 +243,8 @@ static const insn_template i386_optab[] =
   { MN_movsxd, 0x63, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -234,8 +252,8 @@ static const insn_template i386_optab[] =
   { MN_movsxd, 0x63, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -243,8 +261,8 @@ static const insn_template i386_optab[] =
   { MN_movsxd, 0x63, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -252,8 +270,8 @@ static const insn_template i386_optab[] =
   { MN_movzb, 0xb6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -261,8 +279,8 @@ static const insn_template i386_optab[] =
   { MN_movzw, 0xb7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -270,8 +288,8 @@ static const insn_template i386_optab[] =
   { MN_movzx, 0xb6, 2, SPACE_0F, None,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -279,134 +297,134 @@ static const insn_template i386_optab[] =
   { MN_push, 0x50, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0xff, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_push, 0x6a, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x68, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x06, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x50, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0xff, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_push, 0x6a, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x68, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0xa0, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pusha, 0x60, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x58, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x8f, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_pop, 0x07, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x58, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x8f, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_pop, 0xa1, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_popa, 0x61, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xchg, 0x90, 2, SPACE_BASE, None,
     { 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -414,8 +432,8 @@ static const insn_template i386_optab[] =
   { MN_xchg, 0x86, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -423,8 +441,8 @@ static const insn_template i386_optab[] =
   { MN_in, 0xe4, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -432,8 +450,8 @@ static const insn_template i386_optab[] =
   { MN_in, 0xec, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -441,22 +459,22 @@ static const insn_template i386_optab[] =
   { MN_in, 0xe4, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_in, 0xec, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_out, 0xe6, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -464,8 +482,8 @@ static const insn_template i386_optab[] =
   { MN_out, 0xee, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -473,22 +491,22 @@ static const insn_template i386_optab[] =
   { MN_out, 0xe6, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_out, 0xee, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lea, 0x8d, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -496,8 +514,8 @@ static const insn_template i386_optab[] =
   { MN_lds, 0xc5, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -505,8 +523,8 @@ static const insn_template i386_optab[] =
   { MN_les, 0xc4, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -514,8 +532,8 @@ static const insn_template i386_optab[] =
   { MN_lfs, 0xb4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -523,8 +541,8 @@ static const insn_template i386_optab[] =
   { MN_lfs, 0xb4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -532,8 +550,8 @@ static const insn_template i386_optab[] =
   { MN_lgs, 0xb5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -541,8 +559,8 @@ static const insn_template i386_optab[] =
   { MN_lgs, 0xb5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -550,8 +568,8 @@ static const insn_template i386_optab[] =
   { MN_lss, 0xb2, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -559,8 +577,8 @@ static const insn_template i386_optab[] =
   { MN_lss, 0xb2, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -568,120 +586,120 @@ static const insn_template i386_optab[] =
   { MN_clc, 0xf8, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cld, 0xfc, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cli, 0xfa, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clts, 0x06, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmc, 0xf5, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lahf, 0x9f, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lahf, 0x9f, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sahf, 0x9e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sahf, 0x9e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pushf, 0x9c, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pushf, 0x9c, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_popf, 0x9d, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_popf, 0x9d, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stc, 0xf9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_std, 0xfd, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sti, 0xfb, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_add, 0x00, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -689,8 +707,8 @@ static const insn_template i386_optab[] =
   { MN_add, 0x83, 2, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -698,8 +716,8 @@ static const insn_template i386_optab[] =
   { MN_add, 0x04, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -707,31 +725,73 @@ static const insn_template i386_optab[] =
   { MN_add, 0x80, 2, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_add, 0x00, 3, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_add, 0x83, 3, SPACE_EVEXMAP4, 0,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_add, 0x80, 3, SPACE_EVEXMAP4, 0,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_inc, 0x40, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_inc, 0xfe, 1, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_inc, 0xfe, 2, SPACE_EVEXMAP4, 0,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sub, 0x28, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -739,8 +799,8 @@ static const insn_template i386_optab[] =
   { MN_sub, 0x83, 2, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -748,8 +808,8 @@ static const insn_template i386_optab[] =
   { MN_sub, 0x2c, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -757,31 +817,73 @@ static const insn_template i386_optab[] =
   { MN_sub, 0x80, 2, SPACE_BASE, 5,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sub, 0x28, 3, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sub, 0x83, 3, SPACE_EVEXMAP4, 5,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sub, 0x80, 3, SPACE_EVEXMAP4, 5,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_dec, 0x48, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_dec, 0xfe, 1, SPACE_BASE, 1,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_dec, 0xfe, 2, SPACE_EVEXMAP4, 1,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sbb, 0x18, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -789,8 +891,8 @@ static const insn_template i386_optab[] =
   { MN_sbb, 0x83, 2, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -798,8 +900,8 @@ static const insn_template i386_optab[] =
   { MN_sbb, 0x1c, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -807,17 +909,77 @@ static const insn_template i386_optab[] =
   { MN_sbb, 0x80, 2, SPACE_BASE, 3,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sbb, 0x18, 2, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sbb, 0x83, 2, SPACE_EVEXMAP4, 3,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sbb, 0x80, 2, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sbb, 0x18, 3, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sbb, 0x83, 3, SPACE_EVEXMAP4, 3,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sbb, 0x80, 3, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmp, 0x38, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -825,8 +987,8 @@ static const insn_template i386_optab[] =
   { MN_cmp, 0x83, 2, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -834,8 +996,8 @@ static const insn_template i386_optab[] =
   { MN_cmp, 0x3c, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -843,8 +1005,8 @@ static const insn_template i386_optab[] =
   { MN_cmp, 0x80, 2, SPACE_BASE, 7,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -852,8 +1014,8 @@ static const insn_template i386_optab[] =
   { MN_test, 0x84, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -861,8 +1023,8 @@ static const insn_template i386_optab[] =
   { MN_test, 0xa8, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -870,8 +1032,8 @@ static const insn_template i386_optab[] =
   { MN_test, 0xf6, 2, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -879,8 +1041,8 @@ static const insn_template i386_optab[] =
   { MN_and, 0x20, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -888,8 +1050,8 @@ static const insn_template i386_optab[] =
   { MN_and, 0x83, 2, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -897,8 +1059,8 @@ static const insn_template i386_optab[] =
   { MN_and, 0x24, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -906,17 +1068,50 @@ static const insn_template i386_optab[] =
   { MN_and, 0x80, 2, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_and, 0x20, 3, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_and, 0x83, 3, SPACE_EVEXMAP4, 4,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_and, 0x80, 3, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_or, 0x08, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -924,8 +1119,8 @@ static const insn_template i386_optab[] =
   { MN_or, 0x83, 2, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -933,8 +1128,8 @@ static const insn_template i386_optab[] =
   { MN_or, 0x0c, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -942,17 +1137,50 @@ static const insn_template i386_optab[] =
   { MN_or, 0x80, 2, SPACE_BASE, 1,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_or, 0x08, 3, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_or, 0x83, 3, SPACE_EVEXMAP4, 1,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_or, 0x80, 3, SPACE_EVEXMAP4, 1,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xor, 0x30, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -960,8 +1188,8 @@ static const insn_template i386_optab[] =
   { MN_xor, 0x83, 2, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -969,8 +1197,8 @@ static const insn_template i386_optab[] =
   { MN_xor, 0x34, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -978,24 +1206,57 @@ static const insn_template i386_optab[] =
   { MN_xor, 0x80, 2, SPACE_BASE, 6,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_xor, 0x30, 3, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_xor, 0x83, 3, SPACE_EVEXMAP4, 6,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_xor, 0x80, 3, SPACE_EVEXMAP4, 6,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clr, 0x30, 1, SPACE_BASE, None,
     { 0, 1, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_adc, 0x10, 2, SPACE_BASE, None,
     { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1003,8 +1264,8 @@ static const insn_template i386_optab[] =
   { MN_adc, 0x83, 2, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1012,8 +1273,8 @@ static const insn_template i386_optab[] =
   { MN_adc, 0x14, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1021,194 +1282,290 @@ static const insn_template i386_optab[] =
   { MN_adc, 0x80, 2, SPACE_BASE, 2,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_adc, 0x10, 2, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_adc, 0x83, 2, SPACE_EVEXMAP4, 2,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_adc, 0x80, 2, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_adc, 0x10, 3, SPACE_EVEXMAP4, None,
+    { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_adc, 0x83, 3, SPACE_EVEXMAP4, 2,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_adc, 0x80, 3, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_neg, 0xf6, 1, SPACE_BASE, 3,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_neg, 0xf6, 2, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_not, 0xf6, 1, SPACE_BASE, 2,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_not, 0xf6, 1, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_not, 0xf6, 2, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aaa, 0x37, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aas, 0x3f, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_daa, 0x27, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_das, 0x2f, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aad, 0xd50a, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aad, 0xd5, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aam, 0xd40a, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aam, 0xd4, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cbw, 0x98, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwde, 0x98, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cdqe, 0x98, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwd, 0x99, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cdq, 0x99, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cqo, 0x99, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cbtw, 0x98, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwtl, 0x98, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cltq, 0x98, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwtd, 0x99, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cltd, 0x99, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cqto, 0x99, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mul, 0xf6, 1, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_imul, 0xf6, 1, SPACE_BASE, 5,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_imul, 0xaf, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_imul, 0xaf, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_imul, 0x6b, 3, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1218,8 +1575,8 @@ static const insn_template i386_optab[] =
   { MN_imul, 0x69, 3, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1229,8 +1586,8 @@ static const insn_template i386_optab[] =
   { MN_imul, 0x6b, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1238,8 +1595,8 @@ static const insn_template i386_optab[] =
   { MN_imul, 0x69, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1247,15 +1604,15 @@ static const insn_template i386_optab[] =
   { MN_div, 0xf6, 1, SPACE_BASE, 6,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_div, 0xf6, 2, SPACE_BASE, 6,
     { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1263,15 +1620,15 @@ static const insn_template i386_optab[] =
   { MN_idiv, 0xf6, 1, SPACE_BASE, 7,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_idiv, 0xf6, 2, SPACE_BASE, 7,
     { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1279,8 +1636,8 @@ static const insn_template i386_optab[] =
   { MN_rol, 0xd0, 2, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1288,8 +1645,8 @@ static const insn_template i386_optab[] =
   { MN_rol, 0xc0, 2, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1297,8 +1654,8 @@ static const insn_template i386_optab[] =
   { MN_rol, 0xd2, 2, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1306,15 +1663,57 @@ static const insn_template i386_optab[] =
   { MN_rol, 0xd0, 1, SPACE_BASE, 0,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rol, 0xd0, 3, SPACE_EVEXMAP4, 0,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rol, 0xc0, 3, SPACE_EVEXMAP4, 0,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rol, 0xd2, 3, SPACE_EVEXMAP4, 0,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rol, 0xd0, 2, SPACE_EVEXMAP4, 0,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ror, 0xd0, 2, SPACE_BASE, 1,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1322,8 +1721,8 @@ static const insn_template i386_optab[] =
   { MN_ror, 0xc0, 2, SPACE_BASE, 1,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1331,8 +1730,8 @@ static const insn_template i386_optab[] =
   { MN_ror, 0xd2, 2, SPACE_BASE, 1,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1340,15 +1739,57 @@ static const insn_template i386_optab[] =
   { MN_ror, 0xd0, 1, SPACE_BASE, 1,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_ror, 0xd0, 3, SPACE_EVEXMAP4, 1,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_ror, 0xc0, 3, SPACE_EVEXMAP4, 1,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_ror, 0xd2, 3, SPACE_EVEXMAP4, 1,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_ror, 0xd0, 2, SPACE_EVEXMAP4, 1,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rcl, 0xd0, 2, SPACE_BASE, 2,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1356,8 +1797,8 @@ static const insn_template i386_optab[] =
   { MN_rcl, 0xc0, 2, SPACE_BASE, 2,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1365,8 +1806,8 @@ static const insn_template i386_optab[] =
   { MN_rcl, 0xd2, 2, SPACE_BASE, 2,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1374,15 +1815,91 @@ static const insn_template i386_optab[] =
   { MN_rcl, 0xd0, 1, SPACE_BASE, 2,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcl, 0xd0, 2, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcl, 0xc0, 2, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcl, 0xd2, 2, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcl, 0xd0, 1, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcl, 0xd0, 3, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rcl, 0xc0, 3, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rcl, 0xd2, 3, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rcl, 0xd0, 2, SPACE_EVEXMAP4, 2,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rcr, 0xd0, 2, SPACE_BASE, 3,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1390,8 +1907,8 @@ static const insn_template i386_optab[] =
   { MN_rcr, 0xc0, 2, SPACE_BASE, 3,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1399,8 +1916,8 @@ static const insn_template i386_optab[] =
   { MN_rcr, 0xd2, 2, SPACE_BASE, 3,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1408,15 +1925,91 @@ static const insn_template i386_optab[] =
   { MN_rcr, 0xd0, 1, SPACE_BASE, 3,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcr, 0xd0, 2, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcr, 0xc0, 2, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcr, 0xd2, 2, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcr, 0xd0, 1, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_rcr, 0xd0, 3, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rcr, 0xc0, 3, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rcr, 0xd2, 3, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rcr, 0xd0, 2, SPACE_EVEXMAP4, 3,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sal, 0xd0, 2, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1424,8 +2017,8 @@ static const insn_template i386_optab[] =
   { MN_sal, 0xc0, 2, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1433,8 +2026,8 @@ static const insn_template i386_optab[] =
   { MN_sal, 0xd2, 2, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1442,15 +2035,57 @@ static const insn_template i386_optab[] =
   { MN_sal, 0xd0, 1, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sal, 0xd0, 3, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sal, 0xc0, 3, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sal, 0xd2, 3, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sal, 0xd0, 2, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shl, 0xd0, 2, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1458,8 +2093,8 @@ static const insn_template i386_optab[] =
   { MN_shl, 0xc0, 2, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1467,8 +2102,8 @@ static const insn_template i386_optab[] =
   { MN_shl, 0xd2, 2, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1476,15 +2111,57 @@ static const insn_template i386_optab[] =
   { MN_shl, 0xd0, 1, SPACE_BASE, 4,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_shl, 0xd0, 3, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shl, 0xc0, 3, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shl, 0xd2, 3, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shl, 0xd0, 2, SPACE_EVEXMAP4, 4,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shr, 0xd0, 2, SPACE_BASE, 5,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1492,8 +2169,8 @@ static const insn_template i386_optab[] =
   { MN_shr, 0xc0, 2, SPACE_BASE, 5,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1501,8 +2178,8 @@ static const insn_template i386_optab[] =
   { MN_shr, 0xd2, 2, SPACE_BASE, 5,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1510,15 +2187,57 @@ static const insn_template i386_optab[] =
   { MN_shr, 0xd0, 1, SPACE_BASE, 5,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_shr, 0xd0, 3, SPACE_EVEXMAP4, 5,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shr, 0xc0, 3, SPACE_EVEXMAP4, 5,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shr, 0xd2, 3, SPACE_EVEXMAP4, 5,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shr, 0xd0, 2, SPACE_EVEXMAP4, 5,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sar, 0xd0, 2, SPACE_BASE, 7,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1526,8 +2245,8 @@ static const insn_template i386_optab[] =
   { MN_sar, 0xc0, 2, SPACE_BASE, 7,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1535,24 +2254,66 @@ static const insn_template i386_optab[] =
   { MN_sar, 0xd2, 2, SPACE_BASE, 7,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sar, 0xd0, 1, SPACE_BASE, 7,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_sar, 0xd0, 3, SPACE_EVEXMAP4, 7,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sar, 0xc0, 3, SPACE_EVEXMAP4, 7,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sar, 0xd2, 3, SPACE_EVEXMAP4, 7,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
-      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
-	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_sar, 0xd0, 1, SPACE_BASE, 7,
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
-	  0, 0, 0, 0, 1, 0 } } } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sar, 0xd0, 2, SPACE_EVEXMAP4, 7,
+    { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shld, 0xa4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1562,8 +2323,8 @@ static const insn_template i386_optab[] =
   { MN_shld, 0xa5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1573,17 +2334,54 @@ static const insn_template i386_optab[] =
   { MN_shld, 0xa5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_shld, 0x24, 4, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shld, 0xa5, 4, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shld, 0xa5, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shrd, 0xac, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1593,8 +2391,8 @@ static const insn_template i386_optab[] =
   { MN_shrd, 0xad, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1604,59 +2402,96 @@ static const insn_template i386_optab[] =
   { MN_shrd, 0xad, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_shrd, 0x2c, 4, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shrd, 0xad, 4, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shrd, 0xad, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xe8, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xe8, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xe8, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 1, 3,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 1, 3,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 3,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_call, 0x9a, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1664,22 +2499,22 @@ static const insn_template i386_optab[] =
   { MN_call, 0xff, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lcall, 0x9a, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1687,57 +2522,57 @@ static const insn_template i386_optab[] =
   { MN_lcall, 0xff, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lcall, 0xff, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xeb, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jmp, 0xeb, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 3,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 3,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 3,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xea, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1745,22 +2580,22 @@ static const insn_template i386_optab[] =
   { MN_jmp, 0xff, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ljmp, 0xea, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1768,92 +2603,92 @@ static const insn_template i386_optab[] =
   { MN_ljmp, 0xff, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ljmp, 0xff, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ret, 0xc3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc2, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc2, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      1, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc2, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      2 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      2, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lret, 0xcb, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lret, 0xca, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_retf, 0xcb, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_retf, 0xca, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_enter, 0xc8, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1861,8 +2696,8 @@ static const insn_template i386_optab[] =
   { MN_enter, 0xc8, 2, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1870,540 +2705,540 @@ static const insn_template i386_optab[] =
   { MN_leave, 0xc9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_leave, 0xc9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jo, 0x70, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jno, 0x71, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jb, 0x72, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jc, 0x72, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnae, 0x72, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnb, 0x73, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnc, 0x73, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jae, 0x73, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_je, 0x74, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jz, 0x74, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jne, 0x75, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnz, 0x75, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jbe, 0x76, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jna, 0x76, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnbe, 0x77, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ja, 0x77, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_js, 0x78, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jns, 0x79, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jp, 0x7a, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jpe, 0x7a, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnp, 0x7b, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jpo, 0x7b, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jl, 0x7c, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnge, 0x7c, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnl, 0x7d, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jge, 0x7d, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jle, 0x7e, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jng, 0x7e, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnle, 0x7f, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jg, 0x7f, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jcxz, 0xe3, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jecxz, 0xe3, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jrcxz, 0xe3, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loop, 0xe2, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loop, 0xe2, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopz, 0xe1, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopz, 0xe1, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loope, 0xe1, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loope, 0xe1, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopnz, 0xe0, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopnz, 0xe0, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopne, 0xe0, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopne, 0xe0, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seto, 0x90, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setno, 0x91, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setb, 0x92, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setc, 0x92, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnae, 0x92, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnb, 0x93, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnc, 0x93, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setae, 0x93, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sete, 0x94, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setz, 0x94, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setne, 0x95, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnz, 0x95, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setbe, 0x96, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setna, 0x96, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnbe, 0x97, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_seta, 0x97, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sets, 0x98, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setns, 0x99, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setp, 0x9a, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setpe, 0x9a, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnp, 0x9b, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setpo, 0x9b, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setl, 0x9c, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnge, 0x9c, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnl, 0x9d, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setge, 0x9d, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setle, 0x9e, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setng, 0x9e, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnle, 0x9f, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setg, 0x9f, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_cmps, 0xa6, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmps, 0xa6, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2411,15 +3246,15 @@ static const insn_template i386_optab[] =
   { MN_scmp, 0xa6, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_scmp, 0xa6, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2427,15 +3262,15 @@ static const insn_template i386_optab[] =
   { MN_ins, 0x6c, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ins, 0x6c, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 3, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0,
@@ -2443,15 +3278,15 @@ static const insn_template i386_optab[] =
   { MN_outs, 0x6e, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_outs, 0x6e, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -2459,22 +3294,22 @@ static const insn_template i386_optab[] =
   { MN_lods, 0xac, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lods, 0xac, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lods, 0xac, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -2482,22 +3317,22 @@ static const insn_template i386_optab[] =
   { MN_slod, 0xac, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_slod, 0xac, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_slod, 0xac, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -2505,15 +3340,15 @@ static const insn_template i386_optab[] =
   { MN_movs, 0xa4, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movs, 0xa4, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2521,15 +3356,15 @@ static const insn_template i386_optab[] =
   { MN_smov, 0xa4, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_smov, 0xa4, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2537,22 +3372,22 @@ static const insn_template i386_optab[] =
   { MN_scas, 0xae, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_scas, 0xae, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_scas, 0xae, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -2560,22 +3395,22 @@ static const insn_template i386_optab[] =
   { MN_ssca, 0xae, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ssca, 0xae, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ssca, 0xae, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -2583,22 +3418,22 @@ static const insn_template i386_optab[] =
   { MN_stos, 0xaa, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stos, 0xaa, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_stos, 0xaa, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2606,22 +3441,22 @@ static const insn_template i386_optab[] =
   { MN_ssto, 0xaa, 0, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ssto, 0xaa, 1, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ssto, 0xaa, 2, SPACE_BASE, None,
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2629,22 +3464,22 @@ static const insn_template i386_optab[] =
   { MN_xlat, 0xd7, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xlat, 0xd7, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_bsf, 0xbc, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2652,8 +3487,8 @@ static const insn_template i386_optab[] =
   { MN_bsr, 0xbd, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2661,8 +3496,8 @@ static const insn_template i386_optab[] =
   { MN_bt, 0xa3, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2670,8 +3505,8 @@ static const insn_template i386_optab[] =
   { MN_bt, 0xba, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2679,8 +3514,8 @@ static const insn_template i386_optab[] =
   { MN_btc, 0xbb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2688,8 +3523,8 @@ static const insn_template i386_optab[] =
   { MN_btc, 0xba, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2697,8 +3532,8 @@ static const insn_template i386_optab[] =
   { MN_btr, 0xb3, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2706,8 +3541,8 @@ static const insn_template i386_optab[] =
   { MN_btr, 0xba, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2715,8 +3550,8 @@ static const insn_template i386_optab[] =
   { MN_bts, 0xab, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2724,8 +3559,8 @@ static const insn_template i386_optab[] =
   { MN_bts, 0xba, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2733,50 +3568,50 @@ static const insn_template i386_optab[] =
   { MN_int, 0xcd, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_int1, 0xf1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_int3, 0xcc, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_into, 0xce, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_iret, 0xcf, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rsm, 0xaa, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bound, 0x62, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -2784,29 +3619,29 @@ static const insn_template i386_optab[] =
   { MN_hlt, 0xf4, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_nop, 0x1f, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_nop, 0x90, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_arpl, 0x63, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -2814,8 +3649,8 @@ static const insn_template i386_optab[] =
   { MN_arpl, 0x63, 2, SPACE_BASE, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -2823,8 +3658,8 @@ static const insn_template i386_optab[] =
   { MN_lar, 0x02, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2832,8 +3667,8 @@ static const insn_template i386_optab[] =
   { MN_lar, 0x02, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2841,57 +3676,57 @@ static const insn_template i386_optab[] =
   { MN_lgdt, 0x01, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lgdt, 0x01, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lidt, 0x01, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lidt, 0x01, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lldt, 0x00, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lldt, 0x00, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lmsw, 0x01, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lsl, 0x03, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2899,8 +3734,8 @@ static const insn_template i386_optab[] =
   { MN_lsl, 0x03, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2908,463 +3743,463 @@ static const insn_template i386_optab[] =
   { MN_ltr, 0x00, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ltr, 0x00, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sgdt, 0x01, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sgdt, 0x01, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sidt, 0x01, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sidt, 0x01, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sldt, 0x00, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sldt, 0x00, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_smsw, 0x01, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_smsw, 0x01, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_str, 0x00, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_str, 0x00, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_verr, 0x00, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_verr, 0x00, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_verw, 0x00, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_verw, 0x00, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fld, 0xd9, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fld, 0xd9, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fld, 0xd9, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 3, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fld, 0xdb, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fild, 0xdf, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fild, 0xdf, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fildll, 0xdf, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fldt, 0xdb, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fbld, 0xdf, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fst, 0xdd, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fst, 0xd9, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fst, 0xdd, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 3, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fist, 0xdf, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstp, 0xdd, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstp, 0xd9, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstp, 0xdd, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 3, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstp, 0xdb, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fistp, 0xdf, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fistp, 0xdf, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fistpll, 0xdf, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstpt, 0xdb, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fbstp, 0xdf, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxch, 0xd9, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxch, 0xd9c9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcom, 0xd8, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcom, 0xd8d1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcom, 0xd8, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcom, 0xd8, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 3, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ficom, 0xde, 1, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcomp, 0xd8, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomp, 0xd8d9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomp, 0xd8, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcomp, 0xd8, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 3, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ficomp, 0xde, 1, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcompp, 0xded9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucom, 0xdd, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucom, 0xdde1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomp, 0xdd, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomp, 0xdde9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucompp, 0xdae9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ftst, 0xd9e4, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxam, 0xd9e5, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fld1, 0xd9e8, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldl2t, 0xd9e9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldl2e, 0xd9ea, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldpi, 0xd9eb, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldlg2, 0xd9ec, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldln2, 0xd9ed, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldz, 0xd9ee, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fadd, 0xd8, 2, SPACE_BASE, 0,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3372,36 +4207,36 @@ static const insn_template i386_optab[] =
   { MN_fadd, 0xd8, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fadd, 0xdec1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fadd, 0xd8, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fiadd, 0xde, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_faddp, 0xde, 2, SPACE_BASE, 0,
     { 1, 0, 0, 1, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3409,29 +4244,29 @@ static const insn_template i386_optab[] =
   { MN_faddp, 0xde, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_faddp, 0xdec1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xd8, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xd8, 2, SPACE_BASE, 4,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3439,36 +4274,36 @@ static const insn_template i386_optab[] =
   { MN_fsub, 0xdee1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xdee9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xd8, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisub, 0xde, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fsubp, 0xde, 2, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3476,22 +4311,22 @@ static const insn_template i386_optab[] =
   { MN_fsubp, 0xde, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubp, 0xdee1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubp, 0xde, 2, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3499,29 +4334,29 @@ static const insn_template i386_optab[] =
   { MN_fsubp, 0xde, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubp, 0xdee9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xd8, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xd8, 2, SPACE_BASE, 5,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3529,36 +4364,36 @@ static const insn_template i386_optab[] =
   { MN_fsubr, 0xdee9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xdee1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xd8, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisubr, 0xde, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fsubrp, 0xde, 2, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3566,22 +4401,22 @@ static const insn_template i386_optab[] =
   { MN_fsubrp, 0xde, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubrp, 0xdee9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubrp, 0xde, 2, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3589,22 +4424,22 @@ static const insn_template i386_optab[] =
   { MN_fsubrp, 0xde, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubrp, 0xdee1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmul, 0xd8, 2, SPACE_BASE, 1,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3612,36 +4447,36 @@ static const insn_template i386_optab[] =
   { MN_fmul, 0xd8, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmul, 0xdec9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmul, 0xd8, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fimul, 0xde, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fmulp, 0xde, 2, SPACE_BASE, 1,
     { 1, 0, 0, 1, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3649,29 +4484,29 @@ static const insn_template i386_optab[] =
   { MN_fmulp, 0xde, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmulp, 0xdec9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xd8, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xd8, 2, SPACE_BASE, 6,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3679,36 +4514,36 @@ static const insn_template i386_optab[] =
   { MN_fdiv, 0xdef1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xdef9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xd8, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fidiv, 0xde, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fdivp, 0xde, 2, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3716,22 +4551,22 @@ static const insn_template i386_optab[] =
   { MN_fdivp, 0xde, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivp, 0xdef1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivp, 0xde, 2, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3739,29 +4574,29 @@ static const insn_template i386_optab[] =
   { MN_fdivp, 0xde, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivp, 0xdef9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xd8, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xd8, 2, SPACE_BASE, 7,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3769,36 +4604,36 @@ static const insn_template i386_optab[] =
   { MN_fdivr, 0xdef9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xdef1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xd8, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fidivr, 0xde, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fdivrp, 0xde, 2, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3806,22 +4641,22 @@ static const insn_template i386_optab[] =
   { MN_fdivrp, 0xde, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivrp, 0xdef9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivrp, 0xde, 2, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -3829,820 +4664,827 @@ static const insn_template i386_optab[] =
   { MN_fdivrp, 0xde, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivrp, 0xdef1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_f2xm1, 0xd9f0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fyl2x, 0xd9f1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fptan, 0xd9f2, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fpatan, 0xd9f3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxtract, 0xd9f4, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fprem1, 0xd9f5, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdecstp, 0xd9f6, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fincstp, 0xd9f7, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fprem, 0xd9f8, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fyl2xp1, 0xd9f9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsqrt, 0xd9fa, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsincos, 0xd9fb, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_frndint, 0xd9fc, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fscale, 0xd9fd, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsin, 0xd9fe, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcos, 0xd9ff, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fchs, 0xd9e0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fabs, 0xd9e1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fninit, 0xdbe3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_finit, 0xdbe3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldcw, 0xd9, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnstcw, 0xd9, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstcw, 0xd9, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnstsw, 0xdfe0, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnstsw, 0xdd, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnstsw, 0xdfe0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstsw, 0xdfe0, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstsw, 0xdd, 1, SPACE_BASE, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstsw, 0xdfe0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnclex, 0xdbe2, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fclex, 0xdbe2, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnstenv, 0xd9, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstenv, 0xd9, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fldenv, 0xd9, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnsave, 0xdd, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fsave, 0xdd, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_frstor, 0xdd, 1, SPACE_BASE, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fneni, 0xdbe0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_feni, 0xdbe0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fndisi, 0xdbe1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdisi, 0xdbe1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnsetpm, 0xdbe4, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsetpm, 0xdbe4, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_frstpm, 0xdbe5, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ffree, 0xdd, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ffreep, 0xdf, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnop, 0xd9d0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fwait, 0x9b, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 12, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_addr16, 0x67, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_addr32, 0x67, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aword, 0x67, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_adword, 0x67, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_data16, 0x66, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_data32, 0x66, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_word, 0x66, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_dword, 0x66, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lock, 0xf0, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wait, 0x9b, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cs, 0x2e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ds, 0x3e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_es, 0x26, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fs, 0x64, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_gs, 0x65, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ss, 0x36, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rep, 0xf3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repe, 0xf3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repz, 0xf3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repne, 0xf2, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repnz, 0xf2, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ht, 0x3e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_hnt, 0x2e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex, 0x40, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexz, 0x41, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexy, 0x42, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexyz, 0x43, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexx, 0x44, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexxz, 0x45, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexxy, 0x46, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexxyz, 0x47, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64, 0x48, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64z, 0x49, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64y, 0x4a, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64yz, 0x4b, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64x, 0x4c, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64xz, 0x4d, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64xy, 0x4e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64xyz, 0x4f, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_b, 0x41, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_x, 0x42, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_xb, 0x43, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_r, 0x44, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_rb, 0x45, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_rx, 0x46, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_rxb, 0x47, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_w, 0x48, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wb, 0x49, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wx, 0x4a, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wxb, 0x4b, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wr, 0x4c, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wrb, 0x4d, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wrx, 0x4e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wrxb, 0x4f, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__disp8_, 0x00, 0, SPACE_BASE, Prefix_Disp8,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__disp16_, 0x00, 0, SPACE_BASE, Prefix_Disp16,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__disp32_, 0x00, 0, SPACE_BASE, Prefix_Disp32,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__load_, 0x00, 0, SPACE_BASE, Prefix_Load,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__store_, 0x00, 0, SPACE_BASE, Prefix_Store,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__vex_, 0x00, 0, SPACE_BASE, Prefix_VEX,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__vex2_, 0x00, 0, SPACE_BASE, Prefix_VEX,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__vex3_, 0x00, 0, SPACE_BASE, Prefix_VEX3,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__evex_, 0x00, 0, SPACE_BASE, Prefix_EVEX,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__rex_, 0x00, 0, SPACE_BASE, Prefix_REX,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN__rex2_, 0x00, 0, SPACE_BASE, Prefix_REX2,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__nooptimize_, 0x00, 0, SPACE_BASE, Prefix_NoOptimize,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bswap, 0xc8, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xadd, 0xc0, 2, SPACE_0F, None,
     { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -4650,8 +5492,8 @@ static const insn_template i386_optab[] =
   { MN_cmpxchg, 0xb0, 2, SPACE_0F, None,
     { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -4659,141 +5501,141 @@ static const insn_template i386_optab[] =
   { MN_invd, 0x08, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wbinvd, 0x09, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpg, 0x01, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cpuid, 0xa2, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrmsr, 0x30, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdtsc, 0x31, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdmsr, 0x32, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmpxchg8b, 0xc7, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sysenter, 0x34, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      3 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      3, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysenter, 0x34, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysexit, 0x35, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      3 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      3, 1 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysexit, 0x35, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxsave, 0xae, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxsave64, 0xae, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxrstor, 0xae, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxrstor64, 0xae, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_rdpmc, 0x33, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ud2, 0x0b, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ud2a, 0x0b, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ud1, 0xb9, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4801,8 +5643,8 @@ static const insn_template i386_optab[] =
   { MN_ud2b, 0xb9, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4810,8 +5652,8 @@ static const insn_template i386_optab[] =
   { MN_ud0, 0xff, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4819,278 +5661,608 @@ static const insn_template i386_optab[] =
   { MN_cmovo, 0x40, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovo, 0x40, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovno, 0x41, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovno, 0x41, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovb, 0x42, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovb, 0x42, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovc, 0x42, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovc, 0x42, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnae, 0x42, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnae, 0x42, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnb, 0x43, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnb, 0x43, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnc, 0x43, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnc, 0x43, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovae, 0x43, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovae, 0x43, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmove, 0x44, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmove, 0x44, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovz, 0x44, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovz, 0x44, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovne, 0x45, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovne, 0x45, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnz, 0x45, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnz, 0x45, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovbe, 0x46, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovbe, 0x46, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovna, 0x46, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovna, 0x46, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnbe, 0x47, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnbe, 0x47, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmova, 0x47, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmova, 0x47, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovs, 0x48, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovs, 0x48, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovns, 0x49, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovns, 0x49, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovp, 0x4a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovp, 0x4a, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovpe, 0x4a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovpe, 0x4a, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnp, 0x4b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnp, 0x4b, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovpo, 0x4b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovpo, 0x4b, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovl, 0x4c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovl, 0x4c, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnge, 0x4c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnge, 0x4c, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnl, 0x4d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnl, 0x4d, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovge, 0x4d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovge, 0x4d, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovle, 0x4e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovle, 0x4e, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovng, 0x4e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovng, 0x4e, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovnle, 0x4f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovnle, 0x4f, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmovg, 0x4f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_cmovg, 0x4f, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcmovb, 0xda, 2, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5098,8 +6270,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovnae, 0xda, 2, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5107,8 +6279,8 @@ static const insn_template i386_optab[] =
   { MN_fcmove, 0xda, 2, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5116,8 +6288,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovbe, 0xda, 2, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5125,8 +6297,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovna, 0xda, 2, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5134,8 +6306,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovu, 0xda, 2, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5143,8 +6315,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovae, 0xdb, 2, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5152,8 +6324,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovnb, 0xdb, 2, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5161,8 +6333,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovne, 0xdb, 2, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5170,8 +6342,8 @@ static const insn_template i386_optab[] =
   { MN_fcmova, 0xdb, 2, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5179,8 +6351,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovnbe, 0xdb, 2, SPACE_BASE, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5188,8 +6360,8 @@ static const insn_template i386_optab[] =
   { MN_fcmovnu, 0xdb, 2, SPACE_BASE, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5197,8 +6369,8 @@ static const insn_template i386_optab[] =
   { MN_fcomi, 0xdb, 2, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5206,22 +6378,22 @@ static const insn_template i386_optab[] =
   { MN_fcomi, 0xdbf1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomi, 0xdb, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomi, 0xdb, 2, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5229,22 +6401,22 @@ static const insn_template i386_optab[] =
   { MN_fucomi, 0xdbe9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomi, 0xdb, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomip, 0xdf, 2, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5252,22 +6424,22 @@ static const insn_template i386_optab[] =
   { MN_fcomip, 0xdff1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomip, 0xdf, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcompi, 0xdf, 2, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5275,22 +6447,22 @@ static const insn_template i386_optab[] =
   { MN_fcompi, 0xdff1, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcompi, 0xdf, 1, SPACE_BASE, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomip, 0xdf, 2, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5298,22 +6470,22 @@ static const insn_template i386_optab[] =
   { MN_fucomip, 0xdfe9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomip, 0xdf, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucompi, 0xdf, 2, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5321,22 +6493,22 @@ static const insn_template i386_optab[] =
   { MN_fucompi, 0xdfe9, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucompi, 0xdf, 1, SPACE_BASE, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movnti, 0xc3, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -5344,43 +6516,43 @@ static const insn_template i386_optab[] =
   { MN_clflush, 0xae, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lfence, 0xaee8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mfence, 0xaef0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pause, 0x90, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_emms, 0x77, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movd, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5388,8 +6560,8 @@ static const insn_template i386_optab[] =
   { MN_movd, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5397,8 +6569,8 @@ static const insn_template i386_optab[] =
   { MN_movd, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5406,8 +6578,8 @@ static const insn_template i386_optab[] =
   { MN_movd, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5415,8 +6587,8 @@ static const insn_template i386_optab[] =
   { MN_movd, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5424,8 +6596,8 @@ static const insn_template i386_optab[] =
   { MN_movd, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5433,8 +6605,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0x7e, 2, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5442,8 +6614,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0xd6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -5451,8 +6623,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5460,8 +6632,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0x7e, 2, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5469,8 +6641,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0xd6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -5478,8 +6650,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5487,8 +6659,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5496,8 +6668,8 @@ static const insn_template i386_optab[] =
   { MN_movq, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5505,8 +6677,8 @@ static const insn_template i386_optab[] =
   { MN_packssdw, 0x6b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5514,8 +6686,8 @@ static const insn_template i386_optab[] =
   { MN_packssdw, 0x6b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5523,8 +6695,8 @@ static const insn_template i386_optab[] =
   { MN_packssdw, 0x6b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5532,8 +6704,8 @@ static const insn_template i386_optab[] =
   { MN_packsswb, 0x63, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5541,8 +6713,8 @@ static const insn_template i386_optab[] =
   { MN_packsswb, 0x63, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5550,8 +6722,8 @@ static const insn_template i386_optab[] =
   { MN_packsswb, 0x63, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5559,8 +6731,8 @@ static const insn_template i386_optab[] =
   { MN_packuswb, 0x67, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5568,8 +6740,8 @@ static const insn_template i386_optab[] =
   { MN_packuswb, 0x67, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5577,8 +6749,8 @@ static const insn_template i386_optab[] =
   { MN_packuswb, 0x67, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5586,8 +6758,8 @@ static const insn_template i386_optab[] =
   { MN_paddb, 0xfc | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5595,8 +6767,8 @@ static const insn_template i386_optab[] =
   { MN_paddb, 0xfc | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5604,8 +6776,8 @@ static const insn_template i386_optab[] =
   { MN_paddb, 0xfc | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5613,8 +6785,8 @@ static const insn_template i386_optab[] =
   { MN_paddw, 0xfc | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5622,8 +6794,8 @@ static const insn_template i386_optab[] =
   { MN_paddw, 0xfc | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5631,8 +6803,8 @@ static const insn_template i386_optab[] =
   { MN_paddw, 0xfc | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5640,8 +6812,8 @@ static const insn_template i386_optab[] =
   { MN_paddd, 0xfe, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5649,8 +6821,8 @@ static const insn_template i386_optab[] =
   { MN_paddd, 0xfe, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5658,8 +6830,8 @@ static const insn_template i386_optab[] =
   { MN_paddd, 0xfe, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5667,8 +6839,8 @@ static const insn_template i386_optab[] =
   { MN_paddq, 0xd4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5676,8 +6848,8 @@ static const insn_template i386_optab[] =
   { MN_paddq, 0xd4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5685,8 +6857,8 @@ static const insn_template i386_optab[] =
   { MN_paddq, 0xd4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5694,8 +6866,8 @@ static const insn_template i386_optab[] =
   { MN_paddsb, 0xec | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5703,8 +6875,8 @@ static const insn_template i386_optab[] =
   { MN_paddsb, 0xec | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5712,8 +6884,8 @@ static const insn_template i386_optab[] =
   { MN_paddsb, 0xec | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5721,8 +6893,8 @@ static const insn_template i386_optab[] =
   { MN_paddsw, 0xec | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5730,8 +6902,8 @@ static const insn_template i386_optab[] =
   { MN_paddsw, 0xec | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5739,8 +6911,8 @@ static const insn_template i386_optab[] =
   { MN_paddsw, 0xec | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5748,8 +6920,8 @@ static const insn_template i386_optab[] =
   { MN_paddusb, 0xdc | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5757,8 +6929,8 @@ static const insn_template i386_optab[] =
   { MN_paddusb, 0xdc | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5766,8 +6938,8 @@ static const insn_template i386_optab[] =
   { MN_paddusb, 0xdc | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5775,8 +6947,8 @@ static const insn_template i386_optab[] =
   { MN_paddusw, 0xdc | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5784,8 +6956,8 @@ static const insn_template i386_optab[] =
   { MN_paddusw, 0xdc | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5793,8 +6965,8 @@ static const insn_template i386_optab[] =
   { MN_paddusw, 0xdc | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5802,8 +6974,8 @@ static const insn_template i386_optab[] =
   { MN_pand, 0xdb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5811,8 +6983,8 @@ static const insn_template i386_optab[] =
   { MN_pand, 0xdb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5820,8 +6992,8 @@ static const insn_template i386_optab[] =
   { MN_pand, 0xdb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5829,8 +7001,8 @@ static const insn_template i386_optab[] =
   { MN_pandn, 0xdf, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5838,8 +7010,8 @@ static const insn_template i386_optab[] =
   { MN_pandn, 0xdf, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5847,8 +7019,8 @@ static const insn_template i386_optab[] =
   { MN_pandn, 0xdf, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5856,8 +7028,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqb, 0x74 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5865,8 +7037,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqb, 0x74 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5874,8 +7046,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqb, 0x74 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5883,8 +7055,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqw, 0x74 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5892,8 +7064,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqw, 0x74 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5901,8 +7073,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqw, 0x74 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5910,8 +7082,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqd, 0x76, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5919,8 +7091,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqd, 0x76, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5928,8 +7100,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqd, 0x76, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5937,8 +7109,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtb, 0x64 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5946,8 +7118,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtb, 0x64 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5955,8 +7127,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtb, 0x64 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5964,8 +7136,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtw, 0x64 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5973,8 +7145,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtw, 0x64 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5982,8 +7154,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtw, 0x64 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5991,8 +7163,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtd, 0x66, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6000,8 +7172,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtd, 0x66, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6009,8 +7181,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtd, 0x66, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6018,8 +7190,8 @@ static const insn_template i386_optab[] =
   { MN_pmaddwd, 0xf5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6027,8 +7199,8 @@ static const insn_template i386_optab[] =
   { MN_pmaddwd, 0xf5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6036,8 +7208,8 @@ static const insn_template i386_optab[] =
   { MN_pmaddwd, 0xf5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6045,8 +7217,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhw, 0xe5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6054,8 +7226,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhw, 0xe5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6063,8 +7235,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhw, 0xe5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6072,8 +7244,8 @@ static const insn_template i386_optab[] =
   { MN_pmullw, 0xd5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6081,8 +7253,8 @@ static const insn_template i386_optab[] =
   { MN_pmullw, 0xd5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6090,8 +7262,8 @@ static const insn_template i386_optab[] =
   { MN_pmullw, 0xd5, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6099,8 +7271,8 @@ static const insn_template i386_optab[] =
   { MN_por, 0xeb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6108,8 +7280,8 @@ static const insn_template i386_optab[] =
   { MN_por, 0xeb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6117,8 +7289,8 @@ static const insn_template i386_optab[] =
   { MN_por, 0xeb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6126,8 +7298,8 @@ static const insn_template i386_optab[] =
   { MN_psllw, 0xf1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6135,8 +7307,8 @@ static const insn_template i386_optab[] =
   { MN_psllw, 0xf1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6144,8 +7316,8 @@ static const insn_template i386_optab[] =
   { MN_psllw, 0xf1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6153,8 +7325,8 @@ static const insn_template i386_optab[] =
   { MN_psllw, 0x71, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6162,8 +7334,8 @@ static const insn_template i386_optab[] =
   { MN_psllw, 0x71, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6171,8 +7343,8 @@ static const insn_template i386_optab[] =
   { MN_psllw, 0x71, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6180,8 +7352,8 @@ static const insn_template i386_optab[] =
   { MN_pslld, 0xf2 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6189,8 +7361,8 @@ static const insn_template i386_optab[] =
   { MN_pslld, 0xf2 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6198,8 +7370,8 @@ static const insn_template i386_optab[] =
   { MN_pslld, 0xf2 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6207,8 +7379,8 @@ static const insn_template i386_optab[] =
   { MN_pslld, 0x72 | 0, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6216,8 +7388,8 @@ static const insn_template i386_optab[] =
   { MN_pslld, 0x72 | 0, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6225,8 +7397,8 @@ static const insn_template i386_optab[] =
   { MN_pslld, 0x72 | 0, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6234,8 +7406,8 @@ static const insn_template i386_optab[] =
   { MN_psllq, 0xf2 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6243,8 +7415,8 @@ static const insn_template i386_optab[] =
   { MN_psllq, 0xf2 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6252,8 +7424,8 @@ static const insn_template i386_optab[] =
   { MN_psllq, 0xf2 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6261,8 +7433,8 @@ static const insn_template i386_optab[] =
   { MN_psllq, 0x72 | 1, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6270,8 +7442,8 @@ static const insn_template i386_optab[] =
   { MN_psllq, 0x72 | 1, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6279,8 +7451,8 @@ static const insn_template i386_optab[] =
   { MN_psllq, 0x72 | 1, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6288,8 +7460,8 @@ static const insn_template i386_optab[] =
   { MN_psraw, 0xe1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6297,8 +7469,8 @@ static const insn_template i386_optab[] =
   { MN_psraw, 0xe1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6306,8 +7478,8 @@ static const insn_template i386_optab[] =
   { MN_psraw, 0xe1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6315,8 +7487,8 @@ static const insn_template i386_optab[] =
   { MN_psraw, 0x71, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6324,8 +7496,8 @@ static const insn_template i386_optab[] =
   { MN_psraw, 0x71, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6333,8 +7505,8 @@ static const insn_template i386_optab[] =
   { MN_psraw, 0x71, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6342,8 +7514,8 @@ static const insn_template i386_optab[] =
   { MN_psrad, 0xe2, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6351,8 +7523,8 @@ static const insn_template i386_optab[] =
   { MN_psrad, 0xe2, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6360,8 +7532,8 @@ static const insn_template i386_optab[] =
   { MN_psrad, 0xe2, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6369,8 +7541,8 @@ static const insn_template i386_optab[] =
   { MN_psrad, 0x72, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6378,8 +7550,8 @@ static const insn_template i386_optab[] =
   { MN_psrad, 0x72, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6387,8 +7559,8 @@ static const insn_template i386_optab[] =
   { MN_psrad, 0x72, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6396,8 +7568,8 @@ static const insn_template i386_optab[] =
   { MN_psrlw, 0xd1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6405,8 +7577,8 @@ static const insn_template i386_optab[] =
   { MN_psrlw, 0xd1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6414,8 +7586,8 @@ static const insn_template i386_optab[] =
   { MN_psrlw, 0xd1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6423,8 +7595,8 @@ static const insn_template i386_optab[] =
   { MN_psrlw, 0x71, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6432,8 +7604,8 @@ static const insn_template i386_optab[] =
   { MN_psrlw, 0x71, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6441,8 +7613,8 @@ static const insn_template i386_optab[] =
   { MN_psrlw, 0x71, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6450,8 +7622,8 @@ static const insn_template i386_optab[] =
   { MN_psrld, 0xd2 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6459,8 +7631,8 @@ static const insn_template i386_optab[] =
   { MN_psrld, 0xd2 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6468,8 +7640,8 @@ static const insn_template i386_optab[] =
   { MN_psrld, 0xd2 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6477,8 +7649,8 @@ static const insn_template i386_optab[] =
   { MN_psrld, 0x72 | 0, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6486,8 +7658,8 @@ static const insn_template i386_optab[] =
   { MN_psrld, 0x72 | 0, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6495,8 +7667,8 @@ static const insn_template i386_optab[] =
   { MN_psrld, 0x72 | 0, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6504,8 +7676,8 @@ static const insn_template i386_optab[] =
   { MN_psrlq, 0xd2 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6513,8 +7685,8 @@ static const insn_template i386_optab[] =
   { MN_psrlq, 0xd2 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6522,8 +7694,8 @@ static const insn_template i386_optab[] =
   { MN_psrlq, 0xd2 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6531,8 +7703,8 @@ static const insn_template i386_optab[] =
   { MN_psrlq, 0x72 | 1, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6540,8 +7712,8 @@ static const insn_template i386_optab[] =
   { MN_psrlq, 0x72 | 1, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6549,8 +7721,8 @@ static const insn_template i386_optab[] =
   { MN_psrlq, 0x72 | 1, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6558,8 +7730,8 @@ static const insn_template i386_optab[] =
   { MN_psubb, 0xf8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6567,8 +7739,8 @@ static const insn_template i386_optab[] =
   { MN_psubb, 0xf8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6576,8 +7748,8 @@ static const insn_template i386_optab[] =
   { MN_psubb, 0xf8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6585,8 +7757,8 @@ static const insn_template i386_optab[] =
   { MN_psubw, 0xf8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6594,8 +7766,8 @@ static const insn_template i386_optab[] =
   { MN_psubw, 0xf8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6603,8 +7775,8 @@ static const insn_template i386_optab[] =
   { MN_psubw, 0xf8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6612,8 +7784,8 @@ static const insn_template i386_optab[] =
   { MN_psubd, 0xfa, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6621,8 +7793,8 @@ static const insn_template i386_optab[] =
   { MN_psubd, 0xfa, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6630,8 +7802,8 @@ static const insn_template i386_optab[] =
   { MN_psubd, 0xfa, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6639,8 +7811,8 @@ static const insn_template i386_optab[] =
   { MN_psubq, 0xfb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6648,8 +7820,8 @@ static const insn_template i386_optab[] =
   { MN_psubq, 0xfb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6657,8 +7829,8 @@ static const insn_template i386_optab[] =
   { MN_psubq, 0xfb, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6666,8 +7838,8 @@ static const insn_template i386_optab[] =
   { MN_psubsb, 0xe8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6675,8 +7847,8 @@ static const insn_template i386_optab[] =
   { MN_psubsb, 0xe8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6684,8 +7856,8 @@ static const insn_template i386_optab[] =
   { MN_psubsb, 0xe8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6693,8 +7865,8 @@ static const insn_template i386_optab[] =
   { MN_psubsw, 0xe8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6702,8 +7874,8 @@ static const insn_template i386_optab[] =
   { MN_psubsw, 0xe8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6711,8 +7883,8 @@ static const insn_template i386_optab[] =
   { MN_psubsw, 0xe8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6720,8 +7892,8 @@ static const insn_template i386_optab[] =
   { MN_psubusb, 0xd8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6729,8 +7901,8 @@ static const insn_template i386_optab[] =
   { MN_psubusb, 0xd8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6738,8 +7910,8 @@ static const insn_template i386_optab[] =
   { MN_psubusb, 0xd8 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6747,8 +7919,8 @@ static const insn_template i386_optab[] =
   { MN_psubusw, 0xd8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6756,8 +7928,8 @@ static const insn_template i386_optab[] =
   { MN_psubusw, 0xd8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6765,8 +7937,8 @@ static const insn_template i386_optab[] =
   { MN_psubusw, 0xd8 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6774,8 +7946,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhbw, 0x68, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6783,8 +7955,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhbw, 0x68, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6792,8 +7964,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhbw, 0x68, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6801,8 +7973,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhwd, 0x69, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6810,8 +7982,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhwd, 0x69, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6819,8 +7991,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhwd, 0x69, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6828,8 +8000,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhdq, 0x6a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6837,8 +8009,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhdq, 0x6a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6846,8 +8018,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhdq, 0x6a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6855,8 +8027,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklbw, 0x60, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6864,8 +8036,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklbw, 0x60, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6873,8 +8045,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklbw, 0x60, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6882,8 +8054,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklwd, 0x61, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6891,8 +8063,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklwd, 0x61, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6900,8 +8072,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklwd, 0x61, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6909,8 +8081,8 @@ static const insn_template i386_optab[] =
   { MN_punpckldq, 0x62, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6918,8 +8090,8 @@ static const insn_template i386_optab[] =
   { MN_punpckldq, 0x62, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6927,8 +8099,8 @@ static const insn_template i386_optab[] =
   { MN_punpckldq, 0x62, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6936,8 +8108,8 @@ static const insn_template i386_optab[] =
   { MN_pxor, 0xef, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6945,8 +8117,8 @@ static const insn_template i386_optab[] =
   { MN_pxor, 0xef, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6954,8 +8126,8 @@ static const insn_template i386_optab[] =
   { MN_pxor, 0xef, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6963,8 +8135,8 @@ static const insn_template i386_optab[] =
   { MN_addps, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6972,8 +8144,8 @@ static const insn_template i386_optab[] =
   { MN_addps, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6981,8 +8153,8 @@ static const insn_template i386_optab[] =
   { MN_addss, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6990,8 +8162,8 @@ static const insn_template i386_optab[] =
   { MN_addss, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6999,8 +8171,8 @@ static const insn_template i386_optab[] =
   { MN_andnps, 0x55, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7008,8 +8180,8 @@ static const insn_template i386_optab[] =
   { MN_andnps, 0x55, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7017,8 +8189,8 @@ static const insn_template i386_optab[] =
   { MN_andps, 0x54, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7026,8 +8198,8 @@ static const insn_template i386_optab[] =
   { MN_andps, 0x54, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7035,8 +8207,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqps, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7044,8 +8216,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqps, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7053,8 +8225,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltps, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7062,8 +8234,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltps, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7071,8 +8243,8 @@ static const insn_template i386_optab[] =
   { MN_cmpleps, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7080,8 +8252,8 @@ static const insn_template i386_optab[] =
   { MN_cmpleps, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7089,8 +8261,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordps, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7098,8 +8270,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordps, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7107,8 +8279,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqps, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7116,8 +8288,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqps, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7125,8 +8297,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltps, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7134,8 +8306,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltps, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7143,8 +8315,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnleps, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7152,8 +8324,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnleps, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7161,8 +8333,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordps, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7170,8 +8342,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordps, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7179,8 +8351,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqss, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7188,8 +8360,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqss, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7197,8 +8369,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltss, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7206,8 +8378,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltss, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7215,8 +8387,8 @@ static const insn_template i386_optab[] =
   { MN_cmpless, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7224,8 +8396,8 @@ static const insn_template i386_optab[] =
   { MN_cmpless, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7233,8 +8405,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordss, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7242,8 +8414,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordss, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7251,8 +8423,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqss, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7260,8 +8432,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqss, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7269,8 +8441,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltss, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7278,8 +8450,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltss, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7287,8 +8459,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnless, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7296,8 +8468,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnless, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7305,8 +8477,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordss, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7314,8 +8486,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordss, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7323,8 +8495,8 @@ static const insn_template i386_optab[] =
   { MN_cmpps, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -7334,8 +8506,8 @@ static const insn_template i386_optab[] =
   { MN_cmpps, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -7345,8 +8517,8 @@ static const insn_template i386_optab[] =
   { MN_cmpss, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -7356,8 +8528,8 @@ static const insn_template i386_optab[] =
   { MN_cmpss, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -7367,8 +8539,8 @@ static const insn_template i386_optab[] =
   { MN_comiss, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7376,8 +8548,8 @@ static const insn_template i386_optab[] =
   { MN_comiss, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7385,8 +8557,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpi2ps, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7394,8 +8566,8 @@ static const insn_template i386_optab[] =
   { MN_cvtps2pi, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7403,8 +8575,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7412,8 +8584,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7421,8 +8593,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7430,8 +8602,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7439,8 +8611,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7448,8 +8620,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7457,8 +8629,8 @@ static const insn_template i386_optab[] =
   { MN_cvtss2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -7466,8 +8638,8 @@ static const insn_template i386_optab[] =
   { MN_cvtss2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -7475,8 +8647,8 @@ static const insn_template i386_optab[] =
   { MN_cvttps2pi, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7484,8 +8656,8 @@ static const insn_template i386_optab[] =
   { MN_cvttss2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -7493,8 +8665,8 @@ static const insn_template i386_optab[] =
   { MN_cvttss2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -7502,8 +8674,8 @@ static const insn_template i386_optab[] =
   { MN_divps, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7511,8 +8683,8 @@ static const insn_template i386_optab[] =
   { MN_divps, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7520,8 +8692,8 @@ static const insn_template i386_optab[] =
   { MN_divss, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7529,8 +8701,8 @@ static const insn_template i386_optab[] =
   { MN_divss, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7538,22 +8710,22 @@ static const insn_template i386_optab[] =
   { MN_ldmxcsr, 0xae, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ldmxcsr, 0xae, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_maskmovq, 0xf7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7561,8 +8733,8 @@ static const insn_template i386_optab[] =
   { MN_maxps, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7570,8 +8742,8 @@ static const insn_template i386_optab[] =
   { MN_maxps, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7579,8 +8751,8 @@ static const insn_template i386_optab[] =
   { MN_maxss, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7588,8 +8760,8 @@ static const insn_template i386_optab[] =
   { MN_maxss, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7597,8 +8769,8 @@ static const insn_template i386_optab[] =
   { MN_minps, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7606,8 +8778,8 @@ static const insn_template i386_optab[] =
   { MN_minps, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7615,8 +8787,8 @@ static const insn_template i386_optab[] =
   { MN_minss, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7624,8 +8796,8 @@ static const insn_template i386_optab[] =
   { MN_minss, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7633,8 +8805,8 @@ static const insn_template i386_optab[] =
   { MN_movaps, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7642,8 +8814,8 @@ static const insn_template i386_optab[] =
   { MN_movaps, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7651,8 +8823,8 @@ static const insn_template i386_optab[] =
   { MN_movhlps, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7660,8 +8832,8 @@ static const insn_template i386_optab[] =
   { MN_movhlps, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7669,8 +8841,8 @@ static const insn_template i386_optab[] =
   { MN_movhps, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7678,8 +8850,8 @@ static const insn_template i386_optab[] =
   { MN_movhps, 0x17, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -7687,8 +8859,8 @@ static const insn_template i386_optab[] =
   { MN_movhps, 0x16, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7696,8 +8868,8 @@ static const insn_template i386_optab[] =
   { MN_movlhps, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7705,8 +8877,8 @@ static const insn_template i386_optab[] =
   { MN_movlhps, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7714,8 +8886,8 @@ static const insn_template i386_optab[] =
   { MN_movlps, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7723,8 +8895,8 @@ static const insn_template i386_optab[] =
   { MN_movlps, 0x13, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -7732,8 +8904,8 @@ static const insn_template i386_optab[] =
   { MN_movlps, 0x12, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7741,8 +8913,8 @@ static const insn_template i386_optab[] =
   { MN_movmskps, 0x50, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -7750,8 +8922,8 @@ static const insn_template i386_optab[] =
   { MN_movmskps, 0x50, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -7759,8 +8931,8 @@ static const insn_template i386_optab[] =
   { MN_movntps, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -7768,8 +8940,8 @@ static const insn_template i386_optab[] =
   { MN_movntps, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -7777,8 +8949,8 @@ static const insn_template i386_optab[] =
   { MN_movntq, 0xe7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -7786,8 +8958,8 @@ static const insn_template i386_optab[] =
   { MN_movntdq, 0xe7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -7795,8 +8967,8 @@ static const insn_template i386_optab[] =
   { MN_movntdq, 0xe7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -7804,8 +8976,8 @@ static const insn_template i386_optab[] =
   { MN_movss, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7813,8 +8985,8 @@ static const insn_template i386_optab[] =
   { MN_movss, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7822,8 +8994,8 @@ static const insn_template i386_optab[] =
   { MN_movss, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7831,8 +9003,8 @@ static const insn_template i386_optab[] =
   { MN_movups, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7840,8 +9012,8 @@ static const insn_template i386_optab[] =
   { MN_movups, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7849,8 +9021,8 @@ static const insn_template i386_optab[] =
   { MN_mulps, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7858,8 +9030,8 @@ static const insn_template i386_optab[] =
   { MN_mulps, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7867,8 +9039,8 @@ static const insn_template i386_optab[] =
   { MN_mulss, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7876,8 +9048,8 @@ static const insn_template i386_optab[] =
   { MN_mulss, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7885,8 +9057,8 @@ static const insn_template i386_optab[] =
   { MN_orps, 0x56, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7894,8 +9066,8 @@ static const insn_template i386_optab[] =
   { MN_orps, 0x56, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7903,8 +9075,8 @@ static const insn_template i386_optab[] =
   { MN_pavgb, 0xe0 | (3 * 0), 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7912,8 +9084,8 @@ static const insn_template i386_optab[] =
   { MN_pavgb, 0xe0 | (3 * 0), 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7921,8 +9093,8 @@ static const insn_template i386_optab[] =
   { MN_pavgb, 0xe0 | (3 * 0), 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7930,8 +9102,8 @@ static const insn_template i386_optab[] =
   { MN_pavgw, 0xe0 | (3 * 1), 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7939,8 +9111,8 @@ static const insn_template i386_optab[] =
   { MN_pavgw, 0xe0 | (3 * 1), 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7948,8 +9120,8 @@ static const insn_template i386_optab[] =
   { MN_pavgw, 0xe0 | (3 * 1), 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7957,8 +9129,8 @@ static const insn_template i386_optab[] =
   { MN_pextrw, 0xc5, 3, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7968,8 +9140,8 @@ static const insn_template i386_optab[] =
   { MN_pextrw, 0xc5, 3, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7979,8 +9151,8 @@ static const insn_template i386_optab[] =
   { MN_pextrw, 0xc5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7990,8 +9162,8 @@ static const insn_template i386_optab[] =
   { MN_pextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8001,8 +9173,8 @@ static const insn_template i386_optab[] =
   { MN_pextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8012,8 +9184,8 @@ static const insn_template i386_optab[] =
   { MN_pextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8023,8 +9195,8 @@ static const insn_template i386_optab[] =
   { MN_pextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8034,8 +9206,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrw, 0xc4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -8045,8 +9217,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrw, 0xc4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -8056,8 +9228,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrw, 0xc4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -8067,8 +9239,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrw, 0xc4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -8078,8 +9250,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrw, 0xc4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -8089,8 +9261,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrw, 0xc4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -8100,8 +9272,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxsw, 0xee, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8109,8 +9281,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxsw, 0xee, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8118,8 +9290,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxsw, 0xee, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8127,8 +9299,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxub, 0xde, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8136,8 +9308,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxub, 0xde, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8145,8 +9317,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxub, 0xde, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8154,8 +9326,8 @@ static const insn_template i386_optab[] =
   { MN_pminsw, 0xea, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8163,8 +9335,8 @@ static const insn_template i386_optab[] =
   { MN_pminsw, 0xea, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8172,8 +9344,8 @@ static const insn_template i386_optab[] =
   { MN_pminsw, 0xea, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8181,8 +9353,8 @@ static const insn_template i386_optab[] =
   { MN_pminub, 0xda, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8190,8 +9362,8 @@ static const insn_template i386_optab[] =
   { MN_pminub, 0xda, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8199,8 +9371,8 @@ static const insn_template i386_optab[] =
   { MN_pminub, 0xda, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8208,8 +9380,8 @@ static const insn_template i386_optab[] =
   { MN_pmovmskb, 0xd7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -8217,8 +9389,8 @@ static const insn_template i386_optab[] =
   { MN_pmovmskb, 0xd7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -8226,8 +9398,8 @@ static const insn_template i386_optab[] =
   { MN_pmovmskb, 0xd7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -8235,8 +9407,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhuw, 0xe4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8244,8 +9416,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhuw, 0xe4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8253,8 +9425,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhuw, 0xe4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8262,36 +9434,36 @@ static const insn_template i386_optab[] =
   { MN_prefetchnta, 0x18, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetcht0, 0x18, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetcht1, 0x18, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetcht2, 0x18, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_psadbw, 0xf6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8299,8 +9471,8 @@ static const insn_template i386_optab[] =
   { MN_psadbw, 0xf6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8308,8 +9480,8 @@ static const insn_template i386_optab[] =
   { MN_psadbw, 0xf6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8317,8 +9489,8 @@ static const insn_template i386_optab[] =
   { MN_pshufw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -8328,8 +9500,8 @@ static const insn_template i386_optab[] =
   { MN_rcpps, 0x53, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8337,8 +9509,8 @@ static const insn_template i386_optab[] =
   { MN_rcpps, 0x53, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8346,8 +9518,8 @@ static const insn_template i386_optab[] =
   { MN_rcpss, 0x53, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8355,8 +9527,8 @@ static const insn_template i386_optab[] =
   { MN_rcpss, 0x53, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8364,8 +9536,8 @@ static const insn_template i386_optab[] =
   { MN_rsqrtps, 0x52, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8373,8 +9545,8 @@ static const insn_template i386_optab[] =
   { MN_rsqrtps, 0x52, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8382,8 +9554,8 @@ static const insn_template i386_optab[] =
   { MN_rsqrtss, 0x52, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8391,8 +9563,8 @@ static const insn_template i386_optab[] =
   { MN_rsqrtss, 0x52, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8400,15 +9572,15 @@ static const insn_template i386_optab[] =
   { MN_sfence, 0xaef8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shufps, 0xc6, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -8418,8 +9590,8 @@ static const insn_template i386_optab[] =
   { MN_shufps, 0xc6, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -8429,8 +9601,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtps, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8438,8 +9610,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtps, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8447,8 +9619,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtss, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8456,8 +9628,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtss, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8465,22 +9637,22 @@ static const insn_template i386_optab[] =
   { MN_stmxcsr, 0xae, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_stmxcsr, 0xae, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_subps, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8488,8 +9660,8 @@ static const insn_template i386_optab[] =
   { MN_subps, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8497,8 +9669,8 @@ static const insn_template i386_optab[] =
   { MN_subss, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8506,8 +9678,8 @@ static const insn_template i386_optab[] =
   { MN_subss, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8515,8 +9687,8 @@ static const insn_template i386_optab[] =
   { MN_ucomiss, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8524,8 +9696,8 @@ static const insn_template i386_optab[] =
   { MN_ucomiss, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8533,8 +9705,8 @@ static const insn_template i386_optab[] =
   { MN_unpckhps, 0x15, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8542,8 +9714,8 @@ static const insn_template i386_optab[] =
   { MN_unpckhps, 0x15, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8551,8 +9723,8 @@ static const insn_template i386_optab[] =
   { MN_unpcklps, 0x14, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8560,8 +9732,8 @@ static const insn_template i386_optab[] =
   { MN_unpcklps, 0x14, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8569,8 +9741,8 @@ static const insn_template i386_optab[] =
   { MN_xorps, 0x57, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8578,8 +9750,8 @@ static const insn_template i386_optab[] =
   { MN_xorps, 0x57, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8587,8 +9759,8 @@ static const insn_template i386_optab[] =
   { MN_addpd, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8596,8 +9768,8 @@ static const insn_template i386_optab[] =
   { MN_addpd, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8605,8 +9777,8 @@ static const insn_template i386_optab[] =
   { MN_addsd, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8614,8 +9786,8 @@ static const insn_template i386_optab[] =
   { MN_addsd, 0x58, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8623,8 +9795,8 @@ static const insn_template i386_optab[] =
   { MN_andnpd, 0x55, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8632,8 +9804,8 @@ static const insn_template i386_optab[] =
   { MN_andnpd, 0x55, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8641,8 +9813,8 @@ static const insn_template i386_optab[] =
   { MN_andpd, 0x54, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8650,8 +9822,8 @@ static const insn_template i386_optab[] =
   { MN_andpd, 0x54, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8659,8 +9831,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqpd, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8668,8 +9840,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqpd, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8677,8 +9849,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltpd, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8686,8 +9858,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltpd, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8695,8 +9867,8 @@ static const insn_template i386_optab[] =
   { MN_cmplepd, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8704,8 +9876,8 @@ static const insn_template i386_optab[] =
   { MN_cmplepd, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8713,8 +9885,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordpd, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8722,8 +9894,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordpd, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8731,8 +9903,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqpd, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8740,8 +9912,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqpd, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8749,8 +9921,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltpd, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8758,8 +9930,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltpd, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8767,8 +9939,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnlepd, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8776,8 +9948,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnlepd, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8785,8 +9957,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordpd, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8794,8 +9966,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordpd, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8803,8 +9975,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqsd, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8812,8 +9984,8 @@ static const insn_template i386_optab[] =
   { MN_cmpeqsd, 0xc2, 2, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8821,8 +9993,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltsd, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8830,8 +10002,8 @@ static const insn_template i386_optab[] =
   { MN_cmpltsd, 0xc2, 2, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8839,8 +10011,8 @@ static const insn_template i386_optab[] =
   { MN_cmplesd, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8848,8 +10020,8 @@ static const insn_template i386_optab[] =
   { MN_cmplesd, 0xc2, 2, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8857,8 +10029,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordsd, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8866,8 +10038,8 @@ static const insn_template i386_optab[] =
   { MN_cmpunordsd, 0xc2, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8875,8 +10047,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqsd, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8884,8 +10056,8 @@ static const insn_template i386_optab[] =
   { MN_cmpneqsd, 0xc2, 2, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8893,8 +10065,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltsd, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8902,8 +10074,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnltsd, 0xc2, 2, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8911,8 +10083,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnlesd, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8920,8 +10092,8 @@ static const insn_template i386_optab[] =
   { MN_cmpnlesd, 0xc2, 2, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8929,8 +10101,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordsd, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8938,8 +10110,8 @@ static const insn_template i386_optab[] =
   { MN_cmpordsd, 0xc2, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8947,8 +10119,8 @@ static const insn_template i386_optab[] =
   { MN_cmppd, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -8958,8 +10130,8 @@ static const insn_template i386_optab[] =
   { MN_cmppd, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -8969,8 +10141,8 @@ static const insn_template i386_optab[] =
   { MN_cmpsd, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -8980,8 +10152,8 @@ static const insn_template i386_optab[] =
   { MN_cmpsd, 0xc2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -8991,8 +10163,8 @@ static const insn_template i386_optab[] =
   { MN_comisd, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9000,8 +10172,8 @@ static const insn_template i386_optab[] =
   { MN_comisd, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9009,8 +10181,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpi2pd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9018,8 +10190,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpi2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9027,8 +10199,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpi2pd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9036,8 +10208,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9045,8 +10217,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9054,8 +10226,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9063,8 +10235,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9072,8 +10244,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9081,8 +10253,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9090,8 +10262,8 @@ static const insn_template i386_optab[] =
   { MN_divpd, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9099,8 +10271,8 @@ static const insn_template i386_optab[] =
   { MN_divpd, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9108,8 +10280,8 @@ static const insn_template i386_optab[] =
   { MN_divsd, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9117,8 +10289,8 @@ static const insn_template i386_optab[] =
   { MN_divsd, 0x5e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9126,8 +10298,8 @@ static const insn_template i386_optab[] =
   { MN_maxpd, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9135,8 +10307,8 @@ static const insn_template i386_optab[] =
   { MN_maxpd, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9144,8 +10316,8 @@ static const insn_template i386_optab[] =
   { MN_maxsd, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9153,8 +10325,8 @@ static const insn_template i386_optab[] =
   { MN_maxsd, 0x5f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9162,8 +10334,8 @@ static const insn_template i386_optab[] =
   { MN_minpd, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9171,8 +10343,8 @@ static const insn_template i386_optab[] =
   { MN_minpd, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9180,8 +10352,8 @@ static const insn_template i386_optab[] =
   { MN_minsd, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9189,8 +10361,8 @@ static const insn_template i386_optab[] =
   { MN_minsd, 0x5d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9198,8 +10370,8 @@ static const insn_template i386_optab[] =
   { MN_movapd, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9207,8 +10379,8 @@ static const insn_template i386_optab[] =
   { MN_movapd, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9216,8 +10388,8 @@ static const insn_template i386_optab[] =
   { MN_movhpd, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9225,8 +10397,8 @@ static const insn_template i386_optab[] =
   { MN_movhpd, 0x17, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -9234,8 +10406,8 @@ static const insn_template i386_optab[] =
   { MN_movhpd, 0x16, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9243,8 +10415,8 @@ static const insn_template i386_optab[] =
   { MN_movlpd, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9252,8 +10424,8 @@ static const insn_template i386_optab[] =
   { MN_movlpd, 0x13, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -9261,8 +10433,8 @@ static const insn_template i386_optab[] =
   { MN_movlpd, 0x12, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9270,8 +10442,8 @@ static const insn_template i386_optab[] =
   { MN_movmskpd, 0x50, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -9279,8 +10451,8 @@ static const insn_template i386_optab[] =
   { MN_movmskpd, 0x50, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -9288,8 +10460,8 @@ static const insn_template i386_optab[] =
   { MN_movntpd, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9297,8 +10469,8 @@ static const insn_template i386_optab[] =
   { MN_movntpd, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9306,8 +10478,8 @@ static const insn_template i386_optab[] =
   { MN_movsd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9315,8 +10487,8 @@ static const insn_template i386_optab[] =
   { MN_movsd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9324,8 +10496,8 @@ static const insn_template i386_optab[] =
   { MN_movsd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9333,8 +10505,8 @@ static const insn_template i386_optab[] =
   { MN_movupd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9342,8 +10514,8 @@ static const insn_template i386_optab[] =
   { MN_movupd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9351,8 +10523,8 @@ static const insn_template i386_optab[] =
   { MN_mulpd, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9360,8 +10532,8 @@ static const insn_template i386_optab[] =
   { MN_mulpd, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9369,8 +10541,8 @@ static const insn_template i386_optab[] =
   { MN_mulsd, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9378,8 +10550,8 @@ static const insn_template i386_optab[] =
   { MN_mulsd, 0x59, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9387,8 +10559,8 @@ static const insn_template i386_optab[] =
   { MN_orpd, 0x56, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9396,8 +10568,8 @@ static const insn_template i386_optab[] =
   { MN_orpd, 0x56, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9405,8 +10577,8 @@ static const insn_template i386_optab[] =
   { MN_shufpd, 0xc6, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9416,8 +10588,8 @@ static const insn_template i386_optab[] =
   { MN_shufpd, 0xc6, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9427,8 +10599,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtpd, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9436,8 +10608,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtpd, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9445,8 +10617,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtsd, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9454,8 +10626,8 @@ static const insn_template i386_optab[] =
   { MN_sqrtsd, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9463,8 +10635,8 @@ static const insn_template i386_optab[] =
   { MN_subpd, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9472,8 +10644,8 @@ static const insn_template i386_optab[] =
   { MN_subpd, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9481,8 +10653,8 @@ static const insn_template i386_optab[] =
   { MN_subsd, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9490,8 +10662,8 @@ static const insn_template i386_optab[] =
   { MN_subsd, 0x5c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9499,8 +10671,8 @@ static const insn_template i386_optab[] =
   { MN_ucomisd, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9508,8 +10680,8 @@ static const insn_template i386_optab[] =
   { MN_ucomisd, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9517,8 +10689,8 @@ static const insn_template i386_optab[] =
   { MN_unpckhpd, 0x15, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9526,8 +10698,8 @@ static const insn_template i386_optab[] =
   { MN_unpckhpd, 0x15, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9535,8 +10707,8 @@ static const insn_template i386_optab[] =
   { MN_unpcklpd, 0x14, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9544,8 +10716,8 @@ static const insn_template i386_optab[] =
   { MN_unpcklpd, 0x14, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9553,8 +10725,8 @@ static const insn_template i386_optab[] =
   { MN_xorpd, 0x57, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9562,8 +10734,8 @@ static const insn_template i386_optab[] =
   { MN_xorpd, 0x57, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9571,8 +10743,8 @@ static const insn_template i386_optab[] =
   { MN_cvtdq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9580,8 +10752,8 @@ static const insn_template i386_optab[] =
   { MN_cvtdq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9589,8 +10761,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9598,8 +10770,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9607,8 +10779,8 @@ static const insn_template i386_optab[] =
   { MN_cvtdq2ps, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9616,8 +10788,8 @@ static const insn_template i386_optab[] =
   { MN_cvtdq2ps, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9625,8 +10797,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpd2pi, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9634,8 +10806,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpd2ps, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9643,8 +10815,8 @@ static const insn_template i386_optab[] =
   { MN_cvtpd2ps, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9652,8 +10824,8 @@ static const insn_template i386_optab[] =
   { MN_cvtps2pd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9661,8 +10833,8 @@ static const insn_template i386_optab[] =
   { MN_cvtps2pd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9670,8 +10842,8 @@ static const insn_template i386_optab[] =
   { MN_cvtps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9679,8 +10851,8 @@ static const insn_template i386_optab[] =
   { MN_cvtps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9688,8 +10860,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsd2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -9697,8 +10869,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsd2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -9706,8 +10878,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsd2ss, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9715,8 +10887,8 @@ static const insn_template i386_optab[] =
   { MN_cvtsd2ss, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9724,8 +10896,8 @@ static const insn_template i386_optab[] =
   { MN_cvtss2sd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9733,8 +10905,8 @@ static const insn_template i386_optab[] =
   { MN_cvtss2sd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9742,8 +10914,8 @@ static const insn_template i386_optab[] =
   { MN_cvttpd2pi, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9751,8 +10923,8 @@ static const insn_template i386_optab[] =
   { MN_cvttsd2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -9760,8 +10932,8 @@ static const insn_template i386_optab[] =
   { MN_cvttsd2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -9769,8 +10941,8 @@ static const insn_template i386_optab[] =
   { MN_cvttpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9778,8 +10950,8 @@ static const insn_template i386_optab[] =
   { MN_cvttpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9787,8 +10959,8 @@ static const insn_template i386_optab[] =
   { MN_cvttps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9796,8 +10968,8 @@ static const insn_template i386_optab[] =
   { MN_cvttps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9805,8 +10977,8 @@ static const insn_template i386_optab[] =
   { MN_maskmovdqu, 0xf7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9814,8 +10986,8 @@ static const insn_template i386_optab[] =
   { MN_maskmovdqu, 0xf7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9823,8 +10995,8 @@ static const insn_template i386_optab[] =
   { MN_movdqa, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9832,8 +11004,8 @@ static const insn_template i386_optab[] =
   { MN_movdqa, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9841,8 +11013,8 @@ static const insn_template i386_optab[] =
   { MN_movdqu, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9850,8 +11022,8 @@ static const insn_template i386_optab[] =
   { MN_movdqu, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9859,8 +11031,8 @@ static const insn_template i386_optab[] =
   { MN_movdq2q, 0xd6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9868,8 +11040,8 @@ static const insn_template i386_optab[] =
   { MN_movq2dq, 0xd6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9877,8 +11049,8 @@ static const insn_template i386_optab[] =
   { MN_pmuludq, 0xf4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9886,8 +11058,8 @@ static const insn_template i386_optab[] =
   { MN_pmuludq, 0xf4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9895,8 +11067,8 @@ static const insn_template i386_optab[] =
   { MN_pmuludq, 0xf4, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9904,8 +11076,8 @@ static const insn_template i386_optab[] =
   { MN_pshufd, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9915,8 +11087,8 @@ static const insn_template i386_optab[] =
   { MN_pshufd, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9926,8 +11098,8 @@ static const insn_template i386_optab[] =
   { MN_pshufhw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9937,8 +11109,8 @@ static const insn_template i386_optab[] =
   { MN_pshufhw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9948,8 +11120,8 @@ static const insn_template i386_optab[] =
   { MN_pshuflw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9959,8 +11131,8 @@ static const insn_template i386_optab[] =
   { MN_pshuflw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -9970,8 +11142,8 @@ static const insn_template i386_optab[] =
   { MN_pslldq, 0x73, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9979,8 +11151,8 @@ static const insn_template i386_optab[] =
   { MN_pslldq, 0x73, 2, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9988,8 +11160,8 @@ static const insn_template i386_optab[] =
   { MN_psrldq, 0x73, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9997,8 +11169,8 @@ static const insn_template i386_optab[] =
   { MN_psrldq, 0x73, 2, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10006,8 +11178,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhqdq, 0x6d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10015,8 +11187,8 @@ static const insn_template i386_optab[] =
   { MN_punpckhqdq, 0x6d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10024,8 +11196,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklqdq, 0x6c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10033,8 +11205,8 @@ static const insn_template i386_optab[] =
   { MN_punpcklqdq, 0x6c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10042,8 +11214,8 @@ static const insn_template i386_optab[] =
   { MN_addsubpd, 0xd0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10051,8 +11223,8 @@ static const insn_template i386_optab[] =
   { MN_addsubpd, 0xd0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10060,8 +11232,8 @@ static const insn_template i386_optab[] =
   { MN_addsubps, 0xd0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10069,8 +11241,8 @@ static const insn_template i386_optab[] =
   { MN_addsubps, 0xd0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10078,8 +11250,8 @@ static const insn_template i386_optab[] =
   { MN_haddpd, 0x7c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10087,8 +11259,8 @@ static const insn_template i386_optab[] =
   { MN_haddpd, 0x7c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10096,8 +11268,8 @@ static const insn_template i386_optab[] =
   { MN_haddps, 0x7c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10105,8 +11277,8 @@ static const insn_template i386_optab[] =
   { MN_haddps, 0x7c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10114,8 +11286,8 @@ static const insn_template i386_optab[] =
   { MN_hsubpd, 0x7d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10123,8 +11295,8 @@ static const insn_template i386_optab[] =
   { MN_hsubpd, 0x7d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10132,8 +11304,8 @@ static const insn_template i386_optab[] =
   { MN_hsubps, 0x7d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10141,8 +11313,8 @@ static const insn_template i386_optab[] =
   { MN_hsubps, 0x7d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10150,8 +11322,8 @@ static const insn_template i386_optab[] =
   { MN_lddqu, 0xf0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10159,8 +11331,8 @@ static const insn_template i386_optab[] =
   { MN_lddqu, 0xf0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10168,8 +11340,8 @@ static const insn_template i386_optab[] =
   { MN_movddup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10177,8 +11349,8 @@ static const insn_template i386_optab[] =
   { MN_movddup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10186,8 +11358,8 @@ static const insn_template i386_optab[] =
   { MN_movshdup, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10195,8 +11367,8 @@ static const insn_template i386_optab[] =
   { MN_movshdup, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10204,8 +11376,8 @@ static const insn_template i386_optab[] =
   { MN_movsldup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10213,8 +11385,8 @@ static const insn_template i386_optab[] =
   { MN_movsldup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10222,43 +11394,43 @@ static const insn_template i386_optab[] =
   { MN_fisttp, 0xdf, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisttp, 0xdd, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisttpll, 0xdd, 1, SPACE_BASE, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_cmpxchg16b, 0xc7, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 4,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 48, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 48, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } } } },
   { MN_monitor, 0x01c8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_monitor, 0x01c8, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -10268,8 +11440,8 @@ static const insn_template i386_optab[] =
   { MN_monitor, 0x01c8, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 27, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 27, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -10279,15 +11451,15 @@ static const insn_template i386_optab[] =
   { MN_mwait, 0x01c9, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mwait, 0x01c9, 2, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -10295,50 +11467,50 @@ static const insn_template i386_optab[] =
   { MN_vmcall, 0x01c1, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmclear, 0xc7, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmlaunch, 0x01c2, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmresume, 0x01c3, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmptrld, 0xc7, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmptrst, 0xc7, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmread, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -10346,8 +11518,8 @@ static const insn_template i386_optab[] =
   { MN_vmread, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -10355,8 +11527,8 @@ static const insn_template i386_optab[] =
   { MN_vmwrite, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -10364,8 +11536,8 @@ static const insn_template i386_optab[] =
   { MN_vmwrite, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -10373,36 +11545,36 @@ static const insn_template i386_optab[] =
   { MN_vmxoff, 0x01c4, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmxon, 0xc7, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmfunc, 0x01d4, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_getsec, 0x37, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invept, 0x80, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -10410,8 +11582,17 @@ static const insn_template i386_optab[] =
   { MN_invept, 0x80, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 50, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 50, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_invept, 0xf0, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 50, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -10419,17 +11600,26 @@ static const insn_template i386_optab[] =
   { MN_invvpid, 0x81, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
-  { MN_invvpid, 0x81, 2, SPACE_0F38, None,
+  { MN_invvpid, 0x81, 2, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 50, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_invvpid, 0xf1, 2, SPACE_EVEXMAP4, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 50, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 50, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -10437,8 +11627,8 @@ static const insn_template i386_optab[] =
   { MN_invpcid, 0x82, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -10446,8 +11636,17 @@ static const insn_template i386_optab[] =
   { MN_invpcid, 0x82, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 57, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 57, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_invpcid, 0xf2, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 57, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -10455,8 +11654,8 @@ static const insn_template i386_optab[] =
   { MN_phaddw, 0x01, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10464,8 +11663,8 @@ static const insn_template i386_optab[] =
   { MN_phaddw, 0x01, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10473,8 +11672,8 @@ static const insn_template i386_optab[] =
   { MN_phaddw, 0x01, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10482,8 +11681,8 @@ static const insn_template i386_optab[] =
   { MN_phaddd, 0x02, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10491,8 +11690,8 @@ static const insn_template i386_optab[] =
   { MN_phaddd, 0x02, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10500,8 +11699,8 @@ static const insn_template i386_optab[] =
   { MN_phaddd, 0x02, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10509,8 +11708,8 @@ static const insn_template i386_optab[] =
   { MN_phaddsw, 0x03, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10518,8 +11717,8 @@ static const insn_template i386_optab[] =
   { MN_phaddsw, 0x03, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10527,8 +11726,8 @@ static const insn_template i386_optab[] =
   { MN_phaddsw, 0x03, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10536,8 +11735,8 @@ static const insn_template i386_optab[] =
   { MN_phsubw, 0x05, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10545,8 +11744,8 @@ static const insn_template i386_optab[] =
   { MN_phsubw, 0x05, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10554,8 +11753,8 @@ static const insn_template i386_optab[] =
   { MN_phsubw, 0x05, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10563,8 +11762,8 @@ static const insn_template i386_optab[] =
   { MN_phsubd, 0x06, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10572,8 +11771,8 @@ static const insn_template i386_optab[] =
   { MN_phsubd, 0x06, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10581,8 +11780,8 @@ static const insn_template i386_optab[] =
   { MN_phsubd, 0x06, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10590,8 +11789,8 @@ static const insn_template i386_optab[] =
   { MN_phsubsw, 0x07, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10599,8 +11798,8 @@ static const insn_template i386_optab[] =
   { MN_phsubsw, 0x07, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10608,8 +11807,8 @@ static const insn_template i386_optab[] =
   { MN_phsubsw, 0x07, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10617,8 +11816,8 @@ static const insn_template i386_optab[] =
   { MN_pmaddubsw, 0x04, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10626,8 +11825,8 @@ static const insn_template i386_optab[] =
   { MN_pmaddubsw, 0x04, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10635,8 +11834,8 @@ static const insn_template i386_optab[] =
   { MN_pmaddubsw, 0x04, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10644,8 +11843,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhrsw, 0x0b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10653,8 +11852,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhrsw, 0x0b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10662,8 +11861,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhrsw, 0x0b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10671,8 +11870,8 @@ static const insn_template i386_optab[] =
   { MN_pshufb, 0x00, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10680,8 +11879,8 @@ static const insn_template i386_optab[] =
   { MN_pshufb, 0x00, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10689,8 +11888,8 @@ static const insn_template i386_optab[] =
   { MN_pshufb, 0x00, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10698,8 +11897,8 @@ static const insn_template i386_optab[] =
   { MN_psignb, 0x08 | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10707,8 +11906,8 @@ static const insn_template i386_optab[] =
   { MN_psignb, 0x08 | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10716,8 +11915,8 @@ static const insn_template i386_optab[] =
   { MN_psignb, 0x08 | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10725,8 +11924,8 @@ static const insn_template i386_optab[] =
   { MN_psignw, 0x08 | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10734,8 +11933,8 @@ static const insn_template i386_optab[] =
   { MN_psignw, 0x08 | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10743,8 +11942,8 @@ static const insn_template i386_optab[] =
   { MN_psignw, 0x08 | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10752,8 +11951,8 @@ static const insn_template i386_optab[] =
   { MN_psignd, 0x0a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10761,8 +11960,8 @@ static const insn_template i386_optab[] =
   { MN_psignd, 0x0a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10770,8 +11969,8 @@ static const insn_template i386_optab[] =
   { MN_psignd, 0x0a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10779,8 +11978,8 @@ static const insn_template i386_optab[] =
   { MN_palignr, 0x0f, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10790,8 +11989,8 @@ static const insn_template i386_optab[] =
   { MN_palignr, 0x0f, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10801,8 +12000,8 @@ static const insn_template i386_optab[] =
   { MN_palignr, 0x0f, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -10812,8 +12011,8 @@ static const insn_template i386_optab[] =
   { MN_pabsb, 0x1c | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10821,8 +12020,8 @@ static const insn_template i386_optab[] =
   { MN_pabsb, 0x1c | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10830,8 +12029,8 @@ static const insn_template i386_optab[] =
   { MN_pabsb, 0x1c | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10839,8 +12038,8 @@ static const insn_template i386_optab[] =
   { MN_pabsw, 0x1c | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10848,8 +12047,8 @@ static const insn_template i386_optab[] =
   { MN_pabsw, 0x1c | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10857,8 +12056,8 @@ static const insn_template i386_optab[] =
   { MN_pabsw, 0x1c | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10866,8 +12065,8 @@ static const insn_template i386_optab[] =
   { MN_pabsd, 0x1e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10875,8 +12074,8 @@ static const insn_template i386_optab[] =
   { MN_pabsd, 0x1e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10884,8 +12083,8 @@ static const insn_template i386_optab[] =
   { MN_pabsd, 0x1e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10893,8 +12092,8 @@ static const insn_template i386_optab[] =
   { MN_blendps, 0x0c | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10904,8 +12103,8 @@ static const insn_template i386_optab[] =
   { MN_blendps, 0x0c | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10915,8 +12114,8 @@ static const insn_template i386_optab[] =
   { MN_blendpd, 0x0c | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10926,8 +12125,8 @@ static const insn_template i386_optab[] =
   { MN_blendpd, 0x0c | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10937,8 +12136,8 @@ static const insn_template i386_optab[] =
   { MN_blendvps, 0x4a | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10948,8 +12147,8 @@ static const insn_template i386_optab[] =
   { MN_blendvps, 0x4a | 0, 2, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10957,8 +12156,8 @@ static const insn_template i386_optab[] =
   { MN_blendvps, 0x14 | 0, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10968,8 +12167,8 @@ static const insn_template i386_optab[] =
   { MN_blendvps, 0x14 | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10977,8 +12176,8 @@ static const insn_template i386_optab[] =
   { MN_blendvpd, 0x4a | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10988,8 +12187,8 @@ static const insn_template i386_optab[] =
   { MN_blendvpd, 0x4a | 1, 2, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10997,8 +12196,8 @@ static const insn_template i386_optab[] =
   { MN_blendvpd, 0x14 | 1, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11008,8 +12207,8 @@ static const insn_template i386_optab[] =
   { MN_blendvpd, 0x14 | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11017,8 +12216,8 @@ static const insn_template i386_optab[] =
   { MN_dpps, 0x40 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11028,8 +12227,8 @@ static const insn_template i386_optab[] =
   { MN_dpps, 0x40 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11039,8 +12238,8 @@ static const insn_template i386_optab[] =
   { MN_dppd, 0x40 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11050,8 +12249,8 @@ static const insn_template i386_optab[] =
   { MN_dppd, 0x40 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11061,8 +12260,8 @@ static const insn_template i386_optab[] =
   { MN_extractps, 0x17, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11072,8 +12271,8 @@ static const insn_template i386_optab[] =
   { MN_extractps, 0x17, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11083,8 +12282,8 @@ static const insn_template i386_optab[] =
   { MN_extractps, 0x17, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11094,8 +12293,8 @@ static const insn_template i386_optab[] =
   { MN_extractps, 0x17, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11105,8 +12304,8 @@ static const insn_template i386_optab[] =
   { MN_insertps, 0x21, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11116,8 +12315,8 @@ static const insn_template i386_optab[] =
   { MN_insertps, 0x21, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11127,8 +12326,8 @@ static const insn_template i386_optab[] =
   { MN_movntdqa, 0x2a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11136,8 +12335,8 @@ static const insn_template i386_optab[] =
   { MN_movntdqa, 0x2a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11145,8 +12344,8 @@ static const insn_template i386_optab[] =
   { MN_mpsadbw, 0x42, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11156,8 +12355,8 @@ static const insn_template i386_optab[] =
   { MN_mpsadbw, 0x42, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11167,8 +12366,8 @@ static const insn_template i386_optab[] =
   { MN_packusdw, 0x2b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11176,8 +12375,8 @@ static const insn_template i386_optab[] =
   { MN_packusdw, 0x2b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11185,8 +12384,8 @@ static const insn_template i386_optab[] =
   { MN_pblendvb, 0x4c, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11196,8 +12395,8 @@ static const insn_template i386_optab[] =
   { MN_pblendvb, 0x4c, 2, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11205,8 +12404,8 @@ static const insn_template i386_optab[] =
   { MN_pblendvb, 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11216,8 +12415,8 @@ static const insn_template i386_optab[] =
   { MN_pblendvb, 0x10, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11225,8 +12424,8 @@ static const insn_template i386_optab[] =
   { MN_pblendw, 0x0e, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11236,8 +12435,8 @@ static const insn_template i386_optab[] =
   { MN_pblendw, 0x0e, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11247,8 +12446,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqq, 0x29, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11256,8 +12455,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpeqq, 0x29, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11265,8 +12464,8 @@ static const insn_template i386_optab[] =
   { MN_pextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11276,8 +12475,8 @@ static const insn_template i386_optab[] =
   { MN_pextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11287,8 +12486,8 @@ static const insn_template i386_optab[] =
   { MN_pextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11298,8 +12497,8 @@ static const insn_template i386_optab[] =
   { MN_pextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11309,8 +12508,8 @@ static const insn_template i386_optab[] =
   { MN_pextrd, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11320,8 +12519,8 @@ static const insn_template i386_optab[] =
   { MN_pextrd, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11331,8 +12530,8 @@ static const insn_template i386_optab[] =
   { MN_pextrq, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11342,8 +12541,8 @@ static const insn_template i386_optab[] =
   { MN_pextrq, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11353,8 +12552,8 @@ static const insn_template i386_optab[] =
   { MN_phminposuw, 0x41, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11362,8 +12561,8 @@ static const insn_template i386_optab[] =
   { MN_phminposuw, 0x41, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11371,8 +12570,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrb, 0x20, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -11382,8 +12581,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrb, 0x20, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -11393,8 +12592,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrb, 0x20, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -11404,8 +12603,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrb, 0x20, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -11415,8 +12614,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrd, 0x22, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11426,8 +12625,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrd, 0x22, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11437,8 +12636,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrq, 0x22, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -11448,8 +12647,8 @@ static const insn_template i386_optab[] =
   { MN_pinsrq, 0x22, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -11459,8 +12658,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxsb, 0x3c, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11468,8 +12667,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxsb, 0x3c, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11477,8 +12676,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxsd, 0x3d, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11486,8 +12685,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxsd, 0x3d, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11495,8 +12694,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxud, 0x3f, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11504,8 +12703,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxud, 0x3f, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11513,8 +12712,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxuw, 0x3e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11522,8 +12721,8 @@ static const insn_template i386_optab[] =
   { MN_pmaxuw, 0x3e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11531,8 +12730,8 @@ static const insn_template i386_optab[] =
   { MN_pminsb, 0x38, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11540,8 +12739,8 @@ static const insn_template i386_optab[] =
   { MN_pminsb, 0x38, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11549,8 +12748,8 @@ static const insn_template i386_optab[] =
   { MN_pminsd, 0x39, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11558,8 +12757,8 @@ static const insn_template i386_optab[] =
   { MN_pminsd, 0x39, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11567,8 +12766,8 @@ static const insn_template i386_optab[] =
   { MN_pminud, 0x3b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11576,8 +12775,8 @@ static const insn_template i386_optab[] =
   { MN_pminud, 0x3b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11585,8 +12784,8 @@ static const insn_template i386_optab[] =
   { MN_pminuw, 0x3a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11594,8 +12793,8 @@ static const insn_template i386_optab[] =
   { MN_pminuw, 0x3a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11603,8 +12802,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxbw, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11612,8 +12811,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxbw, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11621,8 +12820,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxbd, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11630,8 +12829,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxbd, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11639,8 +12838,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxbq, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11648,8 +12847,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxbq, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11657,8 +12856,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxwd, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11666,8 +12865,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxwd, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11675,8 +12874,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxwq, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11684,8 +12883,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxwq, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11693,8 +12892,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxdq, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11702,8 +12901,8 @@ static const insn_template i386_optab[] =
   { MN_pmovsxdq, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11711,8 +12910,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxbw, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11720,8 +12919,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxbw, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11729,8 +12928,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxbd, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11738,8 +12937,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxbd, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11747,8 +12946,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxbq, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11756,8 +12955,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxbq, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11765,8 +12964,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxwd, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11774,8 +12973,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxwd, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11783,8 +12982,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxwq, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11792,8 +12991,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxwq, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11801,8 +13000,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxdq, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11810,8 +13009,8 @@ static const insn_template i386_optab[] =
   { MN_pmovzxdq, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11819,8 +13018,8 @@ static const insn_template i386_optab[] =
   { MN_pmuldq, 0x28, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11828,8 +13027,8 @@ static const insn_template i386_optab[] =
   { MN_pmuldq, 0x28, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11837,8 +13036,8 @@ static const insn_template i386_optab[] =
   { MN_pmulld, 0x40, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11846,8 +13045,8 @@ static const insn_template i386_optab[] =
   { MN_pmulld, 0x40, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11855,8 +13054,8 @@ static const insn_template i386_optab[] =
   { MN_ptest, 0x17, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11864,8 +13063,8 @@ static const insn_template i386_optab[] =
   { MN_ptest, 0x17, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11873,8 +13072,8 @@ static const insn_template i386_optab[] =
   { MN_roundps, 0x08 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11884,8 +13083,8 @@ static const insn_template i386_optab[] =
   { MN_roundps, 0x08 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11895,8 +13094,8 @@ static const insn_template i386_optab[] =
   { MN_roundpd, 0x08 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11906,8 +13105,8 @@ static const insn_template i386_optab[] =
   { MN_roundpd, 0x08 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11917,8 +13116,8 @@ static const insn_template i386_optab[] =
   { MN_roundss, 0x0a | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11928,8 +13127,8 @@ static const insn_template i386_optab[] =
   { MN_roundss, 0x0a | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11939,8 +13138,8 @@ static const insn_template i386_optab[] =
   { MN_roundsd, 0x0a | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -11950,8 +13149,8 @@ static const insn_template i386_optab[] =
   { MN_roundsd, 0x0a | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -11961,8 +13160,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtq, 0x37, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11970,8 +13169,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpgtq, 0x37, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11979,8 +13178,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestri, 0x61, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11990,8 +13189,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestri, 0x61, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12001,8 +13200,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestri, 0x61, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12012,8 +13211,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestri, 0x61, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12023,8 +13222,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestrm, 0x60, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12034,8 +13233,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestrm, 0x60, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12045,8 +13244,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestrm, 0x60, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12056,8 +13255,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpestrm, 0x60, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12067,8 +13266,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpistri, 0x63, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12078,8 +13277,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpistri, 0x63, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12089,8 +13288,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpistrm, 0x62, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12100,8 +13299,8 @@ static const insn_template i386_optab[] =
   { MN_pcmpistrm, 0x62, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12111,17 +13310,35 @@ static const insn_template i386_optab[] =
   { MN_crc32, 0xf0, 2, SPACE_0F38, None,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_crc32, 0xf0, 2, SPACE_EVEXMAP4, None,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_crc32, 0xf0, 2, SPACE_0F38, None,
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 29, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 29, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_crc32, 0xf0, 2, SPACE_EVEXMAP4, None,
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -12129,64 +13346,64 @@ static const insn_template i386_optab[] =
   { MN_xsave, 0xae, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsave64, 0xae, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 37, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 37, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xrstor, 0xae, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xrstor64, 0xae, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 37, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 37, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xgetbv, 0x01d0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsetbv, 0x01d1, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsaveopt, 0xae, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsaveopt64, 0xae, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 38, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 38, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesdec, 0xde, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12194,8 +13411,8 @@ static const insn_template i386_optab[] =
   { MN_aesdec, 0xde, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12203,8 +13420,8 @@ static const insn_template i386_optab[] =
   { MN_aesdeclast, 0xdf, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12212,8 +13429,8 @@ static const insn_template i386_optab[] =
   { MN_aesdeclast, 0xdf, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12221,8 +13438,8 @@ static const insn_template i386_optab[] =
   { MN_aesenc, 0xdc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12230,8 +13447,8 @@ static const insn_template i386_optab[] =
   { MN_aesenc, 0xdc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12239,8 +13456,8 @@ static const insn_template i386_optab[] =
   { MN_aesenclast, 0xdd, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12248,8 +13465,8 @@ static const insn_template i386_optab[] =
   { MN_aesenclast, 0xdd, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12257,8 +13474,8 @@ static const insn_template i386_optab[] =
   { MN_aesimc, 0xdb, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12266,8 +13483,8 @@ static const insn_template i386_optab[] =
   { MN_aesimc, 0xdb, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12275,8 +13492,8 @@ static const insn_template i386_optab[] =
   { MN_aeskeygenassist, 0xdf, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12286,8 +13503,8 @@ static const insn_template i386_optab[] =
   { MN_aeskeygenassist, 0xdf, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12297,8 +13514,8 @@ static const insn_template i386_optab[] =
   { MN_pclmulqdq, 0x44, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12308,8 +13525,8 @@ static const insn_template i386_optab[] =
   { MN_pclmulqdq, 0x44, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12319,8 +13536,8 @@ static const insn_template i386_optab[] =
   { MN_pclmullqlqdq, 0x44, 2, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12328,8 +13545,8 @@ static const insn_template i386_optab[] =
   { MN_pclmullqlqdq, 0x44, 2, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12337,8 +13554,8 @@ static const insn_template i386_optab[] =
   { MN_pclmulhqlqdq, 0x44, 2, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12346,8 +13563,8 @@ static const insn_template i386_optab[] =
   { MN_pclmulhqlqdq, 0x44, 2, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12355,8 +13572,8 @@ static const insn_template i386_optab[] =
   { MN_pclmullqhqdq, 0x44, 2, SPACE_0F3A, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12364,8 +13581,8 @@ static const insn_template i386_optab[] =
   { MN_pclmullqhqdq, 0x44, 2, SPACE_0F3A, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12373,8 +13590,8 @@ static const insn_template i386_optab[] =
   { MN_pclmulhqhqdq, 0x44, 2, SPACE_0F3A, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12382,8 +13599,8 @@ static const insn_template i386_optab[] =
   { MN_pclmulhqhqdq, 0x44, 2, SPACE_0F3A, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12391,8 +13608,8 @@ static const insn_template i386_optab[] =
   { MN_gf2p8affineqb, 0xce, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12402,8 +13619,8 @@ static const insn_template i386_optab[] =
   { MN_gf2p8affineqb, 0xce, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12413,8 +13630,8 @@ static const insn_template i386_optab[] =
   { MN_gf2p8affineinvqb, 0xcf, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12424,8 +13641,8 @@ static const insn_template i386_optab[] =
   { MN_gf2p8affineinvqb, 0xcf, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12435,8 +13652,8 @@ static const insn_template i386_optab[] =
   { MN_gf2p8mulb, 0xcf, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12444,8 +13661,8 @@ static const insn_template i386_optab[] =
   { MN_gf2p8mulb, 0xcf, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12453,8 +13670,8 @@ static const insn_template i386_optab[] =
   { MN_vaddps, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12464,8 +13681,8 @@ static const insn_template i386_optab[] =
   { MN_vaddps, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12475,8 +13692,8 @@ static const insn_template i386_optab[] =
   { MN_vaddpd, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12486,8 +13703,8 @@ static const insn_template i386_optab[] =
   { MN_vaddpd, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12497,8 +13714,8 @@ static const insn_template i386_optab[] =
   { MN_vaddss, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12508,8 +13725,8 @@ static const insn_template i386_optab[] =
   { MN_vaddss, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12519,8 +13736,8 @@ static const insn_template i386_optab[] =
   { MN_vaddsd, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12530,8 +13747,8 @@ static const insn_template i386_optab[] =
   { MN_vaddsd, 0x58, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12541,8 +13758,8 @@ static const insn_template i386_optab[] =
   { MN_vaddsubpd, 0xd0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12552,8 +13769,8 @@ static const insn_template i386_optab[] =
   { MN_vaddsubps, 0xd0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12563,8 +13780,8 @@ static const insn_template i386_optab[] =
   { MN_vandnps, 0x55, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12574,8 +13791,8 @@ static const insn_template i386_optab[] =
   { MN_vandnps, 0x55, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12585,8 +13802,8 @@ static const insn_template i386_optab[] =
   { MN_vandnpd, 0x55, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12596,8 +13813,8 @@ static const insn_template i386_optab[] =
   { MN_vandnpd, 0x55, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12607,8 +13824,8 @@ static const insn_template i386_optab[] =
   { MN_vandps, 0x54, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12618,8 +13835,8 @@ static const insn_template i386_optab[] =
   { MN_vandps, 0x54, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12629,8 +13846,8 @@ static const insn_template i386_optab[] =
   { MN_vandpd, 0x54, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12640,8 +13857,8 @@ static const insn_template i386_optab[] =
   { MN_vandpd, 0x54, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12651,8 +13868,8 @@ static const insn_template i386_optab[] =
   { MN_vblendps, 0x0c | 0, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12664,8 +13881,8 @@ static const insn_template i386_optab[] =
   { MN_vblendpd, 0x0c | 1, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12677,8 +13894,8 @@ static const insn_template i386_optab[] =
   { MN_vblendvps, 0x4a | 0, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12690,8 +13907,8 @@ static const insn_template i386_optab[] =
   { MN_vblendvpd, 0x4a | 1, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12703,8 +13920,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastf128, 0x1a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12712,8 +13929,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastsd, 0x19, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12721,8 +13938,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastsd, 0x19, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12730,8 +13947,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastsd, 0x19, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12739,8 +13956,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastss, 0x18, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12748,8 +13965,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastss, 0x18, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12757,8 +13974,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqps, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12768,8 +13985,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqps, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12779,8 +13996,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqpd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12790,8 +14007,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqpd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12801,8 +14018,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqps, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12812,8 +14029,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqps, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12823,8 +14040,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqpd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12834,8 +14051,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqpd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12845,8 +14062,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltps, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12856,8 +14073,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltps, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12867,8 +14084,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltpd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12878,8 +14095,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltpd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12889,8 +14106,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_osps, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12900,8 +14117,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_osps, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12911,8 +14128,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_ospd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12922,8 +14139,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_ospd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12933,8 +14150,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpleps, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12944,8 +14161,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpleps, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12955,8 +14172,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplepd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12966,8 +14183,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplepd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12977,8 +14194,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_osps, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12988,8 +14205,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_osps, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12999,8 +14216,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_ospd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13010,8 +14227,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_ospd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13021,8 +14238,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordps, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13032,8 +14249,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordps, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13043,8 +14260,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordpd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13054,8 +14271,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordpd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13065,8 +14282,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qps, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13076,8 +14293,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qps, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13087,8 +14304,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qpd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13098,8 +14315,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qpd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13109,8 +14326,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqps, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13120,8 +14337,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqps, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13131,8 +14348,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqpd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13142,8 +14359,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqpd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13153,8 +14370,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqps, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13164,8 +14381,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqps, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13175,8 +14392,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqpd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13186,8 +14403,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqpd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13197,8 +14414,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltps, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13208,8 +14425,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltps, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13219,8 +14436,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltpd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13230,8 +14447,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltpd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13241,8 +14458,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_usps, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13252,8 +14469,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_usps, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13263,8 +14480,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uspd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13274,8 +14491,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uspd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13285,8 +14502,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnleps, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13296,8 +14513,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnleps, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13307,8 +14524,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlepd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13318,8 +14535,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlepd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13329,8 +14546,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_usps, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13340,8 +14557,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_usps, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13351,8 +14568,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uspd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13362,8 +14579,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uspd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13373,8 +14590,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordps, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13384,8 +14601,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordps, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13395,8 +14612,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordpd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13406,8 +14623,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordpd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13417,8 +14634,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qps, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13428,8 +14645,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qps, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13439,8 +14656,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qpd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13450,8 +14667,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qpd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13461,8 +14678,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqps, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13472,8 +14689,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqps, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13483,8 +14700,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqpd, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13494,8 +14711,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqpd, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13505,8 +14722,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngeps, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13516,8 +14733,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngeps, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13527,8 +14744,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngepd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13538,8 +14755,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngepd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13549,8 +14766,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_usps, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13560,8 +14777,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_usps, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13571,8 +14788,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uspd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13582,8 +14799,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uspd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13593,8 +14810,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtps, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13604,8 +14821,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtps, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13615,8 +14832,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtpd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13626,8 +14843,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtpd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13637,8 +14854,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_usps, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13648,8 +14865,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_usps, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13659,8 +14876,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uspd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13670,8 +14887,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uspd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13681,8 +14898,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalseps, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13692,8 +14909,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalseps, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13703,8 +14920,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalsepd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13714,8 +14931,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalsepd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13725,8 +14942,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqps, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13736,8 +14953,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqps, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13747,8 +14964,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqpd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13758,8 +14975,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqpd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13769,8 +14986,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqps, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13780,8 +14997,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqps, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13791,8 +15008,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqpd, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13802,8 +15019,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqpd, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13813,8 +15030,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgeps, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13824,8 +15041,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgeps, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13835,8 +15052,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgepd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13846,8 +15063,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgepd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13857,8 +15074,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_osps, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13868,8 +15085,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_osps, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13879,8 +15096,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_ospd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13890,8 +15107,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_ospd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13901,8 +15118,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtps, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13912,8 +15129,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtps, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13923,8 +15140,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtpd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13934,8 +15151,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtpd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13945,8 +15162,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_osps, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13956,8 +15173,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_osps, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13967,8 +15184,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_ospd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13978,8 +15195,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_ospd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13989,8 +15206,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrueps, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14000,8 +15217,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrueps, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14011,8 +15228,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptruepd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14022,8 +15239,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptruepd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14033,8 +15250,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqps, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14044,8 +15261,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqps, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14055,8 +15272,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqpd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14066,8 +15283,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqpd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14077,8 +15294,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_osps, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14088,8 +15305,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_osps, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14099,8 +15316,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ospd, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14110,8 +15327,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ospd, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14121,8 +15338,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqps, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14132,8 +15349,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqps, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14143,8 +15360,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqpd, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14154,8 +15371,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqpd, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14165,8 +15382,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqps, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14176,8 +15393,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqps, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14187,8 +15404,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqpd, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14198,8 +15415,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqpd, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14209,8 +15426,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_sps, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14220,8 +15437,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_sps, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14231,8 +15448,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_spd, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14242,8 +15459,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_spd, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14253,8 +15470,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_usps, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14264,8 +15481,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_usps, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14275,8 +15492,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uspd, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14286,8 +15503,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uspd, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14297,8 +15514,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqps, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14308,8 +15525,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqps, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14319,8 +15536,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqpd, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14330,8 +15547,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqpd, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14341,8 +15558,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqps, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14352,8 +15569,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqps, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14363,8 +15580,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqpd, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14374,8 +15591,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqpd, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14385,8 +15602,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_sps, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14396,8 +15613,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_sps, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14407,8 +15624,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_spd, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14418,8 +15635,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_spd, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14429,8 +15646,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_usps, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14440,8 +15657,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_usps, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14451,8 +15668,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uspd, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14462,8 +15679,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uspd, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14473,8 +15690,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqps, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14484,8 +15701,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqps, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14495,8 +15712,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqpd, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14506,8 +15723,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqpd, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14517,8 +15734,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqps, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14528,8 +15745,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqps, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14539,8 +15756,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqpd, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14550,8 +15767,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqpd, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14561,8 +15778,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_osps, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14572,8 +15789,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_osps, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14583,8 +15800,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_ospd, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14594,8 +15811,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_ospd, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14605,8 +15822,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_osps, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14616,8 +15833,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_osps, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14627,8 +15844,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ospd, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14638,8 +15855,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ospd, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14649,8 +15866,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqps, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14660,8 +15877,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqps, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14671,8 +15888,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqpd, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14682,8 +15899,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqpd, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14693,8 +15910,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqps, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14704,8 +15921,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqps, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14715,8 +15932,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqpd, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14726,8 +15943,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqpd, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14737,8 +15954,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_usps, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14748,8 +15965,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_usps, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14759,8 +15976,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uspd, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14770,8 +15987,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uspd, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14781,8 +15998,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqss, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14792,8 +16009,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqss, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14803,8 +16020,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqsd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14814,8 +16031,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqsd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14825,8 +16042,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqss, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14836,8 +16053,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqss, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14847,8 +16064,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqsd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14858,8 +16075,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqsd, 0xc2, 3, SPACE_0F, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14869,8 +16086,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltss, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14880,8 +16097,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltss, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14891,8 +16108,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltsd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14902,8 +16119,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltsd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14913,8 +16130,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_osss, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14924,8 +16141,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_osss, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14935,8 +16152,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_ossd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14946,8 +16163,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_ossd, 0xc2, 3, SPACE_0F, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14957,8 +16174,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpless, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14968,8 +16185,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpless, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14979,8 +16196,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplesd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14990,8 +16207,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplesd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15001,8 +16218,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_osss, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15012,8 +16229,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_osss, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15023,8 +16240,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_ossd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15034,8 +16251,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_ossd, 0xc2, 3, SPACE_0F, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15045,8 +16262,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordss, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15056,8 +16273,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordss, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15067,8 +16284,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordsd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15078,8 +16295,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordsd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15089,8 +16306,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qss, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15100,8 +16317,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qss, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15111,8 +16328,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qsd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15122,8 +16339,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qsd, 0xc2, 3, SPACE_0F, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15133,8 +16350,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqss, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15144,8 +16361,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqss, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15155,8 +16372,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqsd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15166,8 +16383,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqsd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15177,8 +16394,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqss, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15188,8 +16405,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqss, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15199,8 +16416,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqsd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15210,8 +16427,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqsd, 0xc2, 3, SPACE_0F, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15221,8 +16438,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltss, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15232,8 +16449,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltss, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15243,8 +16460,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltsd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15254,8 +16471,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltsd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15265,8 +16482,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_usss, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15276,8 +16493,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_usss, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15287,8 +16504,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_ussd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15298,8 +16515,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_ussd, 0xc2, 3, SPACE_0F, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15309,8 +16526,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnless, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15320,8 +16537,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnless, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15331,8 +16548,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlesd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15342,8 +16559,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlesd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15353,8 +16570,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_usss, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15364,8 +16581,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_usss, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15375,8 +16592,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_ussd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15386,8 +16603,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_ussd, 0xc2, 3, SPACE_0F, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15397,8 +16614,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordss, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15408,8 +16625,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordss, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15419,8 +16636,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordsd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15430,8 +16647,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordsd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15441,8 +16658,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qss, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15452,8 +16669,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qss, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15463,8 +16680,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qsd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15474,8 +16691,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qsd, 0xc2, 3, SPACE_0F, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15485,8 +16702,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqss, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15496,8 +16713,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqss, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15507,8 +16724,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqsd, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15518,8 +16735,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqsd, 0xc2, 3, SPACE_0F, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15529,8 +16746,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngess, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15540,8 +16757,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngess, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15551,8 +16768,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngesd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15562,8 +16779,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngesd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15573,8 +16790,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_usss, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15584,8 +16801,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_usss, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15595,8 +16812,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_ussd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15606,8 +16823,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_ussd, 0xc2, 3, SPACE_0F, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15617,8 +16834,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtss, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15628,8 +16845,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtss, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15639,8 +16856,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtsd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15650,8 +16867,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtsd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15661,8 +16878,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_usss, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15672,8 +16889,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_usss, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15683,8 +16900,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_ussd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15694,8 +16911,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_ussd, 0xc2, 3, SPACE_0F, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15705,8 +16922,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalsess, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15716,8 +16933,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalsess, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15727,8 +16944,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalsesd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15738,8 +16955,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalsesd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15749,8 +16966,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqss, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15760,8 +16977,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqss, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15771,8 +16988,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqsd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15782,8 +16999,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqsd, 0xc2, 3, SPACE_0F, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15793,8 +17010,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqss, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15804,8 +17021,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqss, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15815,8 +17032,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqsd, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15826,8 +17043,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqsd, 0xc2, 3, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15837,8 +17054,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgess, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15848,8 +17065,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgess, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15859,8 +17076,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgesd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15870,8 +17087,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgesd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15881,8 +17098,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_osss, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15892,8 +17109,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_osss, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15903,8 +17120,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_ossd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15914,8 +17131,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_ossd, 0xc2, 3, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15925,8 +17142,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtss, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15936,8 +17153,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtss, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15947,8 +17164,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtsd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15958,8 +17175,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtsd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15969,8 +17186,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_osss, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15980,8 +17197,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_osss, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15991,8 +17208,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_ossd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16002,8 +17219,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_ossd, 0xc2, 3, SPACE_0F, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16013,8 +17230,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptruess, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16024,8 +17241,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptruess, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16035,8 +17252,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptruesd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16046,8 +17263,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptruesd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16057,8 +17274,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqss, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16068,8 +17285,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqss, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16079,8 +17296,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqsd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16090,8 +17307,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqsd, 0xc2, 3, SPACE_0F, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16101,8 +17318,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_osss, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16112,8 +17329,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_osss, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16123,8 +17340,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ossd, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16134,8 +17351,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ossd, 0xc2, 3, SPACE_0F, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16145,8 +17362,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqss, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16156,8 +17373,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqss, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16167,8 +17384,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqsd, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16178,8 +17395,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqsd, 0xc2, 3, SPACE_0F, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16189,8 +17406,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqss, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16200,8 +17417,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqss, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16211,8 +17428,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqsd, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16222,8 +17439,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqsd, 0xc2, 3, SPACE_0F, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16233,8 +17450,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_sss, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16244,8 +17461,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_sss, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16255,8 +17472,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_ssd, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16266,8 +17483,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_ssd, 0xc2, 3, SPACE_0F, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16277,8 +17494,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_usss, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16288,8 +17505,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_usss, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16299,8 +17516,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ussd, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16310,8 +17527,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ussd, 0xc2, 3, SPACE_0F, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16321,8 +17538,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqss, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16332,8 +17549,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqss, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16343,8 +17560,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqsd, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16354,8 +17571,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqsd, 0xc2, 3, SPACE_0F, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16365,8 +17582,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqss, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16376,8 +17593,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqss, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16387,8 +17604,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqsd, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16398,8 +17615,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqsd, 0xc2, 3, SPACE_0F, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16409,8 +17626,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_sss, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16420,8 +17637,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_sss, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16431,8 +17648,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_ssd, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16442,8 +17659,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_ssd, 0xc2, 3, SPACE_0F, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16453,8 +17670,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_usss, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16464,8 +17681,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_usss, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16475,8 +17692,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ussd, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16486,8 +17703,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ussd, 0xc2, 3, SPACE_0F, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16497,8 +17714,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqss, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16508,8 +17725,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqss, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16519,8 +17736,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqsd, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16530,8 +17747,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqsd, 0xc2, 3, SPACE_0F, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16541,8 +17758,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqss, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16552,8 +17769,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqss, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16563,8 +17780,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqsd, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16574,8 +17791,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqsd, 0xc2, 3, SPACE_0F, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16585,8 +17802,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_osss, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16596,8 +17813,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_osss, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16607,8 +17824,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_ossd, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16618,8 +17835,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_ossd, 0xc2, 3, SPACE_0F, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16629,8 +17846,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_osss, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16640,8 +17857,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_osss, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16651,8 +17868,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ossd, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16662,8 +17879,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ossd, 0xc2, 3, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16673,8 +17890,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqss, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16684,8 +17901,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqss, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16695,8 +17912,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqsd, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16706,8 +17923,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqsd, 0xc2, 3, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16717,8 +17934,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqss, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16728,8 +17945,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqss, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16739,8 +17956,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqsd, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16750,8 +17967,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqsd, 0xc2, 3, SPACE_0F, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16761,8 +17978,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_usss, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16772,8 +17989,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_usss, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16783,8 +18000,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_ussd, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16794,8 +18011,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_ussd, 0xc2, 3, SPACE_0F, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16805,8 +18022,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpps, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -16818,8 +18035,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpps, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -16831,8 +18048,8 @@ static const insn_template i386_optab[] =
   { MN_vcmppd, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -16844,8 +18061,8 @@ static const insn_template i386_optab[] =
   { MN_vcmppd, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -16857,8 +18074,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpss, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -16870,8 +18087,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpss, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -16883,8 +18100,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpsd, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -16896,8 +18113,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpsd, 0xc2, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -16909,8 +18126,8 @@ static const insn_template i386_optab[] =
   { MN_vcomiss, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16918,8 +18135,8 @@ static const insn_template i386_optab[] =
   { MN_vcomiss, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16927,8 +18144,8 @@ static const insn_template i386_optab[] =
   { MN_vcomisd, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16936,8 +18153,8 @@ static const insn_template i386_optab[] =
   { MN_vcomisd, 0x2f, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 4, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16945,8 +18162,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16954,8 +18171,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16963,8 +18180,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 3, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16972,8 +18189,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16981,8 +18198,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16990,8 +18207,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2ps, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16999,8 +18216,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2ps, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17008,8 +18225,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17017,8 +18234,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17026,8 +18243,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17035,8 +18252,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17044,8 +18261,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17053,8 +18270,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dqx, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17062,8 +18279,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dqx, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17071,8 +18288,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dqy, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17080,8 +18297,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2dqy, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17089,8 +18306,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17098,8 +18315,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17107,8 +18324,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17116,8 +18333,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17125,8 +18342,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17134,8 +18351,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2psx, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17143,8 +18360,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2psx, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17152,8 +18369,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2psy, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17161,8 +18378,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2psy, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17170,8 +18387,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17179,8 +18396,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17188,8 +18405,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17197,8 +18414,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17206,8 +18423,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 3, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17215,8 +18432,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17224,8 +18441,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17233,8 +18450,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtss2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17242,8 +18459,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtss2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17251,8 +18468,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsd2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17260,8 +18477,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsd2si, 0x2d, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17269,8 +18486,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsd2ss, 0x5a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17280,8 +18497,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsd2ss, 0x5a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17291,8 +18508,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17302,8 +18519,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17313,8 +18530,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17324,8 +18541,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17335,8 +18552,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17346,8 +18563,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17357,8 +18574,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17368,8 +18585,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17379,8 +18596,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17390,8 +18607,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17401,8 +18618,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtss2sd, 0x5a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17412,8 +18629,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtss2sd, 0x5a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17423,8 +18640,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17432,8 +18649,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17441,8 +18658,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17450,8 +18667,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17459,8 +18676,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17468,8 +18685,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dqx, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17477,8 +18694,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dqx, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17486,8 +18703,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dqy, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17495,8 +18712,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2dqy, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17504,8 +18721,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17513,8 +18730,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2dq, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17522,8 +18739,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttss2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17531,8 +18748,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttss2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17540,8 +18757,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttsd2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17549,8 +18766,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttsd2si, 0x2c, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -17558,8 +18775,8 @@ static const insn_template i386_optab[] =
   { MN_vdivps, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17569,8 +18786,8 @@ static const insn_template i386_optab[] =
   { MN_vdivps, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17580,8 +18797,8 @@ static const insn_template i386_optab[] =
   { MN_vdivpd, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17591,8 +18808,8 @@ static const insn_template i386_optab[] =
   { MN_vdivpd, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17602,8 +18819,8 @@ static const insn_template i386_optab[] =
   { MN_vdivss, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17613,8 +18830,8 @@ static const insn_template i386_optab[] =
   { MN_vdivss, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17624,8 +18841,8 @@ static const insn_template i386_optab[] =
   { MN_vdivsd, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17635,8 +18852,8 @@ static const insn_template i386_optab[] =
   { MN_vdivsd, 0x5e, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17646,8 +18863,8 @@ static const insn_template i386_optab[] =
   { MN_vdppd, 0x41, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17659,8 +18876,8 @@ static const insn_template i386_optab[] =
   { MN_vdpps, 0x40, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17672,8 +18889,8 @@ static const insn_template i386_optab[] =
   { MN_vextractf128, 0x19, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17683,8 +18900,8 @@ static const insn_template i386_optab[] =
   { MN_vextractps, 0x17, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17694,8 +18911,8 @@ static const insn_template i386_optab[] =
   { MN_vextractps, 0x17, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17705,8 +18922,8 @@ static const insn_template i386_optab[] =
   { MN_vhaddpd, 0x7c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17716,8 +18933,8 @@ static const insn_template i386_optab[] =
   { MN_vhaddps, 0x7c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17727,8 +18944,8 @@ static const insn_template i386_optab[] =
   { MN_vhsubpd, 0x7d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17738,8 +18955,8 @@ static const insn_template i386_optab[] =
   { MN_vhsubps, 0x7d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17749,8 +18966,8 @@ static const insn_template i386_optab[] =
   { MN_vinsertf128, 0x18, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17762,8 +18979,8 @@ static const insn_template i386_optab[] =
   { MN_vinsertps, 0x21, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -17775,8 +18992,8 @@ static const insn_template i386_optab[] =
   { MN_vinsertps, 0x21, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -17788,8 +19005,8 @@ static const insn_template i386_optab[] =
   { MN_vlddqu, 0xf0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17797,15 +19014,15 @@ static const insn_template i386_optab[] =
   { MN_vldmxcsr, 0xae, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmaskmovdqu, 0xf7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17813,8 +19030,8 @@ static const insn_template i386_optab[] =
   { MN_vmaskmovps, 0x2e | 0, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17824,8 +19041,8 @@ static const insn_template i386_optab[] =
   { MN_vmaskmovps, 0x2c | 0, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17835,8 +19052,8 @@ static const insn_template i386_optab[] =
   { MN_vmaskmovpd, 0x2e | 1, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17846,8 +19063,8 @@ static const insn_template i386_optab[] =
   { MN_vmaskmovpd, 0x2c | 1, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17857,8 +19074,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxps, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17868,8 +19085,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxps, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17879,8 +19096,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxpd, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17890,8 +19107,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxpd, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17901,8 +19118,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxss, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17912,8 +19129,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxss, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17923,8 +19140,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxsd, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17934,8 +19151,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxsd, 0x5f, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17945,8 +19162,8 @@ static const insn_template i386_optab[] =
   { MN_vminps, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17956,8 +19173,8 @@ static const insn_template i386_optab[] =
   { MN_vminps, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17967,8 +19184,8 @@ static const insn_template i386_optab[] =
   { MN_vminpd, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17978,8 +19195,8 @@ static const insn_template i386_optab[] =
   { MN_vminpd, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17989,8 +19206,8 @@ static const insn_template i386_optab[] =
   { MN_vminss, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18000,8 +19217,8 @@ static const insn_template i386_optab[] =
   { MN_vminss, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18011,8 +19228,8 @@ static const insn_template i386_optab[] =
   { MN_vminsd, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18022,8 +19239,8 @@ static const insn_template i386_optab[] =
   { MN_vminsd, 0x5d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18033,8 +19250,8 @@ static const insn_template i386_optab[] =
   { MN_vmovaps, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18042,8 +19259,8 @@ static const insn_template i386_optab[] =
   { MN_vmovaps, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18051,8 +19268,8 @@ static const insn_template i386_optab[] =
   { MN_vmovapd, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18060,8 +19277,8 @@ static const insn_template i386_optab[] =
   { MN_vmovapd, 0x28, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18069,8 +19286,8 @@ static const insn_template i386_optab[] =
   { MN_vmovd, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18078,8 +19295,8 @@ static const insn_template i386_optab[] =
   { MN_vmovd, 0x7e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -18087,8 +19304,8 @@ static const insn_template i386_optab[] =
   { MN_vmovddup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18096,8 +19313,8 @@ static const insn_template i386_optab[] =
   { MN_vmovddup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18105,8 +19322,8 @@ static const insn_template i386_optab[] =
   { MN_vmovddup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18114,8 +19331,8 @@ static const insn_template i386_optab[] =
   { MN_vmovddup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18123,8 +19340,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqa, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18132,8 +19349,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqu, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18141,8 +19358,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhlps, 0x12, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18152,8 +19369,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhlps, 0x12, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18163,8 +19380,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhps, 0x16, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18174,8 +19391,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhps, 0x17, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18183,8 +19400,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhps, 0x16, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18194,8 +19411,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhps, 0x17, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18203,8 +19420,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhpd, 0x16, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18214,8 +19431,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhpd, 0x17, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18223,8 +19440,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhpd, 0x16, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18234,8 +19451,8 @@ static const insn_template i386_optab[] =
   { MN_vmovhpd, 0x17, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18243,8 +19460,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlhps, 0x16, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18254,8 +19471,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlhps, 0x16, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18265,8 +19482,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlps, 0x12, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18276,8 +19493,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlps, 0x13, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18285,8 +19502,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlps, 0x12, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18296,8 +19513,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlps, 0x13, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18305,8 +19522,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlpd, 0x12, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18316,8 +19533,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlpd, 0x13, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18325,8 +19542,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlpd, 0x12, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18336,8 +19553,8 @@ static const insn_template i386_optab[] =
   { MN_vmovlpd, 0x13, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18345,8 +19562,8 @@ static const insn_template i386_optab[] =
   { MN_vmovmskps, 0x50, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -18354,8 +19571,8 @@ static const insn_template i386_optab[] =
   { MN_vmovmskpd, 0x50, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -18363,8 +19580,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntdq, 0xe7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18372,8 +19589,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntdq, 0xe7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18381,8 +19598,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntdqa, 0x2a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18390,8 +19607,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntdqa, 0x2a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18399,8 +19616,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntps, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18408,8 +19625,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntps, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18417,8 +19634,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntpd, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18426,8 +19643,8 @@ static const insn_template i386_optab[] =
   { MN_vmovntpd, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18435,8 +19652,8 @@ static const insn_template i386_optab[] =
   { MN_vmovq, 0x7e, 2, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18444,8 +19661,8 @@ static const insn_template i386_optab[] =
   { MN_vmovq, 0xd6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18453,8 +19670,8 @@ static const insn_template i386_optab[] =
   { MN_vmovq, 0x6e, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18462,8 +19679,8 @@ static const insn_template i386_optab[] =
   { MN_vmovq, 0x7e, 2, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18471,8 +19688,8 @@ static const insn_template i386_optab[] =
   { MN_vmovq, 0xd6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18480,8 +19697,8 @@ static const insn_template i386_optab[] =
   { MN_vmovss, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18489,8 +19706,8 @@ static const insn_template i386_optab[] =
   { MN_vmovss, 0x10, 3, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18500,8 +19717,8 @@ static const insn_template i386_optab[] =
   { MN_vmovss, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18509,8 +19726,8 @@ static const insn_template i386_optab[] =
   { MN_vmovss, 0x10, 3, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18520,8 +19737,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18529,8 +19746,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsd, 0x10, 3, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18540,8 +19757,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 4, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18549,8 +19766,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsd, 0x10, 3, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18560,8 +19777,8 @@ static const insn_template i386_optab[] =
   { MN_vmovshdup, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18569,8 +19786,8 @@ static const insn_template i386_optab[] =
   { MN_vmovshdup, 0x16, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18578,8 +19795,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsldup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18587,8 +19804,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsldup, 0x12, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18596,8 +19813,8 @@ static const insn_template i386_optab[] =
   { MN_vmovups, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18605,8 +19822,8 @@ static const insn_template i386_optab[] =
   { MN_vmovups, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18614,8 +19831,8 @@ static const insn_template i386_optab[] =
   { MN_vmovupd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18623,8 +19840,8 @@ static const insn_template i386_optab[] =
   { MN_vmovupd, 0x10, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18632,8 +19849,8 @@ static const insn_template i386_optab[] =
   { MN_vmpsadbw, 0x42, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18645,8 +19862,8 @@ static const insn_template i386_optab[] =
   { MN_vmulps, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18656,8 +19873,8 @@ static const insn_template i386_optab[] =
   { MN_vmulps, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18667,8 +19884,8 @@ static const insn_template i386_optab[] =
   { MN_vmulpd, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18678,8 +19895,8 @@ static const insn_template i386_optab[] =
   { MN_vmulpd, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18689,8 +19906,8 @@ static const insn_template i386_optab[] =
   { MN_vmulss, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18700,8 +19917,8 @@ static const insn_template i386_optab[] =
   { MN_vmulss, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18711,8 +19928,8 @@ static const insn_template i386_optab[] =
   { MN_vmulsd, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18722,8 +19939,8 @@ static const insn_template i386_optab[] =
   { MN_vmulsd, 0x59, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18733,8 +19950,8 @@ static const insn_template i386_optab[] =
   { MN_vorps, 0x56, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18744,8 +19961,8 @@ static const insn_template i386_optab[] =
   { MN_vorps, 0x56, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18755,8 +19972,8 @@ static const insn_template i386_optab[] =
   { MN_vorpd, 0x56, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18766,8 +19983,8 @@ static const insn_template i386_optab[] =
   { MN_vorpd, 0x56, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18777,8 +19994,8 @@ static const insn_template i386_optab[] =
   { MN_vpabsb, 0x1c | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18786,8 +20003,8 @@ static const insn_template i386_optab[] =
   { MN_vpabsb, 0x1c | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18795,8 +20012,8 @@ static const insn_template i386_optab[] =
   { MN_vpabsw, 0x1c | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18804,8 +20021,8 @@ static const insn_template i386_optab[] =
   { MN_vpabsw, 0x1c | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18813,8 +20030,8 @@ static const insn_template i386_optab[] =
   { MN_vpabsd, 0x1e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18822,8 +20039,8 @@ static const insn_template i386_optab[] =
   { MN_vpabsd, 0x1e | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18831,8 +20048,8 @@ static const insn_template i386_optab[] =
   { MN_vpackssdw, 0x6b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18842,8 +20059,8 @@ static const insn_template i386_optab[] =
   { MN_vpackssdw, 0x6b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18853,8 +20070,8 @@ static const insn_template i386_optab[] =
   { MN_vpacksswb, 0x63, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18864,8 +20081,8 @@ static const insn_template i386_optab[] =
   { MN_vpacksswb, 0x63, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18875,8 +20092,8 @@ static const insn_template i386_optab[] =
   { MN_vpackusdw, 0x2b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18886,8 +20103,8 @@ static const insn_template i386_optab[] =
   { MN_vpackusdw, 0x2b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18897,8 +20114,8 @@ static const insn_template i386_optab[] =
   { MN_vpackuswb, 0x67, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18908,8 +20125,8 @@ static const insn_template i386_optab[] =
   { MN_vpackuswb, 0x67, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18919,8 +20136,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddsb, 0xec | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18930,8 +20147,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddsb, 0xec | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18941,8 +20158,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddsw, 0xec | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18952,8 +20169,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddsw, 0xec | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18963,8 +20180,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddb, 0xfc | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18974,8 +20191,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddb, 0xfc | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18985,8 +20202,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddw, 0xfc | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18996,8 +20213,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddw, 0xfc | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19007,8 +20224,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddd, 0xfe, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19018,8 +20235,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddd, 0xfe, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19029,8 +20246,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddq, 0xd4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19040,8 +20257,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddq, 0xd4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19051,8 +20268,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddusb, 0xdc | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19062,8 +20279,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddusb, 0xdc | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19073,8 +20290,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddusw, 0xdc | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19084,8 +20301,8 @@ static const insn_template i386_optab[] =
   { MN_vpaddusw, 0xdc | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19095,8 +20312,8 @@ static const insn_template i386_optab[] =
   { MN_vpalignr, 0x0f, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19108,8 +20325,8 @@ static const insn_template i386_optab[] =
   { MN_vpalignr, 0x0f, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19121,8 +20338,8 @@ static const insn_template i386_optab[] =
   { MN_vpand, 0xdb, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19132,8 +20349,8 @@ static const insn_template i386_optab[] =
   { MN_vpandn, 0xdf, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19143,8 +20360,8 @@ static const insn_template i386_optab[] =
   { MN_vpavgb, 0xe0 | (3 * 0), 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19154,8 +20371,8 @@ static const insn_template i386_optab[] =
   { MN_vpavgb, 0xe0 | (3 * 0), 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19165,8 +20382,8 @@ static const insn_template i386_optab[] =
   { MN_vpavgw, 0xe0 | (3 * 1), 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19176,8 +20393,8 @@ static const insn_template i386_optab[] =
   { MN_vpavgw, 0xe0 | (3 * 1), 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19187,8 +20404,8 @@ static const insn_template i386_optab[] =
   { MN_vpblendvb, 0x4c, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19200,8 +20417,8 @@ static const insn_template i386_optab[] =
   { MN_vpblendw, 0x0e, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19213,8 +20430,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqb, 0x74 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19224,8 +20441,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqb, 0x74 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19235,8 +20452,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqb, 0x3f, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19246,8 +20463,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqw, 0x74 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19257,8 +20474,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqw, 0x74 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19268,8 +20485,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqw, 0x3f, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19279,8 +20496,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqd, 0x76, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19290,8 +20507,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqd, 0x76, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19301,8 +20518,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqd, 0x1f, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19312,8 +20529,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqq, 0x29, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19323,8 +20540,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqq, 0x29, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19334,8 +20551,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpeqq, 0x1f, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19345,8 +20562,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpestri, 0x61, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19356,8 +20573,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpestri, 0x61, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19367,8 +20584,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpestrm, 0x60, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19378,8 +20595,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpestrm, 0x60, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19389,8 +20606,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtb, 0x64 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19400,8 +20617,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtb, 0x64 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19411,8 +20628,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtw, 0x64 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19422,8 +20639,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtw, 0x64 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19433,8 +20650,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtd, 0x66, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19444,8 +20661,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtd, 0x66, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19455,8 +20672,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtq, 0x37, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19466,8 +20683,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpgtq, 0x37, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19477,8 +20694,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpistri, 0x63, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19488,8 +20705,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpistrm, 0x62, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19499,8 +20716,8 @@ static const insn_template i386_optab[] =
   { MN_vperm2f128, 0x06, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19512,8 +20729,8 @@ static const insn_template i386_optab[] =
   { MN_vpermilps, 0x0c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19523,8 +20740,8 @@ static const insn_template i386_optab[] =
   { MN_vpermilps, 0x04, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -19534,8 +20751,8 @@ static const insn_template i386_optab[] =
   { MN_vpermilpd, 0x0d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19545,8 +20762,8 @@ static const insn_template i386_optab[] =
   { MN_vpermilpd, 0x05, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19556,8 +20773,8 @@ static const insn_template i386_optab[] =
   { MN_vpermilpd, 0x05, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -19567,8 +20784,8 @@ static const insn_template i386_optab[] =
   { MN_vpermilpd, 0x0d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19578,8 +20795,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrd, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19589,8 +20806,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrd, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19600,8 +20817,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrq, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19611,8 +20828,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrq, 0x16, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19622,8 +20839,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrw, 0xc5, 3, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19633,8 +20850,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19644,8 +20861,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19655,8 +20872,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrw, 0xc5, 3, SPACE_0F, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19666,8 +20883,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19677,8 +20894,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrw, 0x14 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19688,8 +20905,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19699,8 +20916,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19710,8 +20927,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19721,8 +20938,8 @@ static const insn_template i386_optab[] =
   { MN_vpextrb, 0x14 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19732,8 +20949,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddd, 0x02, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19743,8 +20960,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddsw, 0x03, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19754,8 +20971,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddw, 0x01, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19765,8 +20982,8 @@ static const insn_template i386_optab[] =
   { MN_vphminposuw, 0x41, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19774,8 +20991,8 @@ static const insn_template i386_optab[] =
   { MN_vphsubd, 0x06, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19785,8 +21002,8 @@ static const insn_template i386_optab[] =
   { MN_vphsubsw, 0x07, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19796,8 +21013,8 @@ static const insn_template i386_optab[] =
   { MN_vphsubw, 0x05, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19807,8 +21024,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrb, 0x20, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -19820,8 +21037,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrb, 0x20, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -19833,8 +21050,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrb, 0x20, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -19846,8 +21063,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrb, 0x20, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -19859,8 +21076,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrd, 0x22, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -19872,8 +21089,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrd, 0x22, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -19885,8 +21102,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrq, 0x22, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -19898,8 +21115,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrq, 0x22, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -19911,8 +21128,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrw, 0xc4, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -19924,8 +21141,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrw, 0xc4, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -19937,8 +21154,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrw, 0xc4, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -19950,8 +21167,8 @@ static const insn_template i386_optab[] =
   { MN_vpinsrw, 0xc4, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -19963,8 +21180,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaddubsw, 0x04, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19974,8 +21191,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaddubsw, 0x04, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19985,8 +21202,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaddwd, 0xf5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19996,8 +21213,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaddwd, 0xf5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20007,8 +21224,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxsb, 0x3c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20018,8 +21235,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxsb, 0x3c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20029,8 +21246,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxsd, 0x3d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20040,8 +21257,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxsd, 0x3d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20051,8 +21268,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxsw, 0xee, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20062,8 +21279,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxsw, 0xee, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20073,8 +21290,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxub, 0xde, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20084,8 +21301,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxub, 0xde, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20095,8 +21312,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxud, 0x3f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20106,8 +21323,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxud, 0x3f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20117,8 +21334,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxuw, 0x3e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20128,8 +21345,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxuw, 0x3e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20139,8 +21356,8 @@ static const insn_template i386_optab[] =
   { MN_vpminsb, 0x38, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20150,8 +21367,8 @@ static const insn_template i386_optab[] =
   { MN_vpminsb, 0x38, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20161,8 +21378,8 @@ static const insn_template i386_optab[] =
   { MN_vpminsd, 0x39, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20172,8 +21389,8 @@ static const insn_template i386_optab[] =
   { MN_vpminsd, 0x39, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20183,8 +21400,8 @@ static const insn_template i386_optab[] =
   { MN_vpminsw, 0xea, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20194,8 +21411,8 @@ static const insn_template i386_optab[] =
   { MN_vpminsw, 0xea, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20205,8 +21422,8 @@ static const insn_template i386_optab[] =
   { MN_vpminub, 0xda, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20216,8 +21433,8 @@ static const insn_template i386_optab[] =
   { MN_vpminub, 0xda, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20227,8 +21444,8 @@ static const insn_template i386_optab[] =
   { MN_vpminud, 0x3b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20238,8 +21455,8 @@ static const insn_template i386_optab[] =
   { MN_vpminud, 0x3b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20249,8 +21466,8 @@ static const insn_template i386_optab[] =
   { MN_vpminuw, 0x3a, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20260,8 +21477,8 @@ static const insn_template i386_optab[] =
   { MN_vpminuw, 0x3a, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20271,8 +21488,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovmskb, 0xd7, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -20280,8 +21497,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbd, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20289,8 +21506,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbd, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20298,8 +21515,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbd, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20307,8 +21524,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbq, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20316,8 +21533,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbq, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20325,8 +21542,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbq, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20334,8 +21551,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbw, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20343,8 +21560,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbw, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20352,8 +21569,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbw, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20361,8 +21578,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbw, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20370,8 +21587,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxbw, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20379,8 +21596,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20388,8 +21605,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20397,8 +21614,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20406,8 +21623,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20415,8 +21632,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20424,8 +21641,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxwd, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20433,8 +21650,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxwd, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20442,8 +21659,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxwd, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20451,8 +21668,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxwq, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20460,8 +21677,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxwq, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20469,8 +21686,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsxwq, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20478,8 +21695,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbd, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20487,8 +21704,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbd, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20496,8 +21713,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbd, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20505,8 +21722,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbq, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20514,8 +21731,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbq, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20523,8 +21740,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbq, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20532,8 +21749,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbw, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20541,8 +21758,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbw, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20550,8 +21767,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbw, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20559,8 +21776,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbw, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20568,8 +21785,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxbw, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20577,8 +21794,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20586,8 +21803,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20595,8 +21812,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20604,8 +21821,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20613,8 +21830,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20622,8 +21839,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxwd, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20631,8 +21848,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxwd, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20640,8 +21857,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxwd, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20649,8 +21866,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxwq, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20658,8 +21875,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxwq, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 1, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20667,8 +21884,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovzxwq, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20676,8 +21893,8 @@ static const insn_template i386_optab[] =
   { MN_vpmuldq, 0x28, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20687,8 +21904,8 @@ static const insn_template i386_optab[] =
   { MN_vpmuldq, 0x28, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20698,8 +21915,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulhrsw, 0x0b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20709,8 +21926,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulhrsw, 0x0b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20720,8 +21937,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulhuw, 0xe4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20731,8 +21948,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulhuw, 0xe4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20742,8 +21959,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulhw, 0xe5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20753,8 +21970,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulhw, 0xe5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20764,8 +21981,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulld, 0x40, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20775,8 +21992,8 @@ static const insn_template i386_optab[] =
   { MN_vpmulld, 0x40, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20786,8 +22003,8 @@ static const insn_template i386_optab[] =
   { MN_vpmullw, 0xd5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20797,8 +22014,8 @@ static const insn_template i386_optab[] =
   { MN_vpmullw, 0xd5, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20808,8 +22025,8 @@ static const insn_template i386_optab[] =
   { MN_vpmuludq, 0xf4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20819,8 +22036,8 @@ static const insn_template i386_optab[] =
   { MN_vpmuludq, 0xf4, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20830,8 +22047,8 @@ static const insn_template i386_optab[] =
   { MN_vpor, 0xeb, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20841,8 +22058,8 @@ static const insn_template i386_optab[] =
   { MN_vpsadbw, 0xf6, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20852,8 +22069,8 @@ static const insn_template i386_optab[] =
   { MN_vpsadbw, 0xf6, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20863,8 +22080,8 @@ static const insn_template i386_optab[] =
   { MN_vpshufb, 0x00, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20874,8 +22091,8 @@ static const insn_template i386_optab[] =
   { MN_vpshufb, 0x00, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20885,8 +22102,8 @@ static const insn_template i386_optab[] =
   { MN_vpshufd, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20896,8 +22113,8 @@ static const insn_template i386_optab[] =
   { MN_vpshufd, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -20907,8 +22124,8 @@ static const insn_template i386_optab[] =
   { MN_vpshufhw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20918,8 +22135,8 @@ static const insn_template i386_optab[] =
   { MN_vpshufhw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20929,8 +22146,8 @@ static const insn_template i386_optab[] =
   { MN_vpshuflw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20940,8 +22157,8 @@ static const insn_template i386_optab[] =
   { MN_vpshuflw, 0x70, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20951,8 +22168,8 @@ static const insn_template i386_optab[] =
   { MN_vpsignb, 0x08 | 0, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20962,8 +22179,8 @@ static const insn_template i386_optab[] =
   { MN_vpsignw, 0x08 | 1, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20973,8 +22190,8 @@ static const insn_template i386_optab[] =
   { MN_vpsignd, 0x0a, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20984,8 +22201,8 @@ static const insn_template i386_optab[] =
   { MN_vpslld, 0x72 | 0, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20995,8 +22212,8 @@ static const insn_template i386_optab[] =
   { MN_vpslld, 0xf2 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21006,8 +22223,8 @@ static const insn_template i386_optab[] =
   { MN_vpslld, 0xf2 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21017,8 +22234,8 @@ static const insn_template i386_optab[] =
   { MN_vpslld, 0x72 | 0, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -21028,8 +22245,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllq, 0x72 | 1, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21039,8 +22256,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllq, 0xf2 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21050,8 +22267,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllq, 0xf2 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21061,8 +22278,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllq, 0x72 | 1, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -21072,8 +22289,8 @@ static const insn_template i386_optab[] =
   { MN_vpslldq, 0x73, 3, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21083,8 +22300,8 @@ static const insn_template i386_optab[] =
   { MN_vpslldq, 0x73, 3, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21094,8 +22311,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllw, 0x71, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21105,8 +22322,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllw, 0xf1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21116,8 +22333,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllw, 0x71, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21127,8 +22344,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllw, 0xf1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21138,8 +22355,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrad, 0x72, 3, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21149,8 +22366,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrad, 0xe2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21160,8 +22377,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrad, 0xe2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21171,8 +22388,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrad, 0x72, 3, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -21182,8 +22399,8 @@ static const insn_template i386_optab[] =
   { MN_vpsraw, 0x71, 3, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21193,8 +22410,8 @@ static const insn_template i386_optab[] =
   { MN_vpsraw, 0xe1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21204,8 +22421,8 @@ static const insn_template i386_optab[] =
   { MN_vpsraw, 0x71, 3, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21215,8 +22432,8 @@ static const insn_template i386_optab[] =
   { MN_vpsraw, 0xe1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21226,8 +22443,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrld, 0x72 | 0, 3, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21237,8 +22454,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrld, 0xd2 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21248,8 +22465,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrld, 0xd2 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21259,8 +22476,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrld, 0x72 | 0, 3, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -21270,8 +22487,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlq, 0x72 | 1, 3, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21281,8 +22498,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlq, 0xd2 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21292,8 +22509,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlq, 0xd2 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21303,8 +22520,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlq, 0x72 | 1, 3, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -21314,8 +22531,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrldq, 0x73, 3, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21325,8 +22542,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrldq, 0x73, 3, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21336,8 +22553,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlw, 0x71, 3, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21347,8 +22564,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlw, 0xd1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21358,8 +22575,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlw, 0x71, 3, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21369,8 +22586,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlw, 0xd1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21380,8 +22597,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubb, 0xf8 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21391,8 +22608,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubb, 0xf8 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21402,8 +22619,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubw, 0xf8 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21413,8 +22630,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubw, 0xf8 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21424,8 +22641,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubd, 0xfa | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21435,8 +22652,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubd, 0xfa | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21446,8 +22663,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubq, 0xfa | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21457,8 +22674,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubq, 0xfa | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21468,8 +22685,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubsb, 0xe8 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21479,8 +22696,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubsb, 0xe8 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21490,8 +22707,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubsw, 0xe8 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21501,8 +22718,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubsw, 0xe8 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21512,8 +22729,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubusb, 0xd8 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21523,8 +22740,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubusb, 0xd8 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21534,8 +22751,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubusw, 0xd8 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21545,8 +22762,8 @@ static const insn_template i386_optab[] =
   { MN_vpsubusw, 0xd8 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21556,8 +22773,8 @@ static const insn_template i386_optab[] =
   { MN_vptest, 0x17, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21565,8 +22782,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhbw, 0x68, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21576,8 +22793,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhbw, 0x68, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21587,8 +22804,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhdq, 0x6a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21598,8 +22815,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhdq, 0x6a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21609,8 +22826,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhqdq, 0x6d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21620,8 +22837,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhqdq, 0x6d, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21631,8 +22848,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhwd, 0x69, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21642,8 +22859,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckhwd, 0x69, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21653,8 +22870,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpcklbw, 0x60, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21664,8 +22881,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpcklbw, 0x60, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21675,8 +22892,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckldq, 0x62, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21686,8 +22903,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpckldq, 0x62, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21697,8 +22914,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpcklqdq, 0x6c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21708,8 +22925,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpcklqdq, 0x6c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21719,8 +22936,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpcklwd, 0x61, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21730,8 +22947,8 @@ static const insn_template i386_optab[] =
   { MN_vpunpcklwd, 0x61, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21741,8 +22958,8 @@ static const insn_template i386_optab[] =
   { MN_vpxor, 0xef, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21752,8 +22969,8 @@ static const insn_template i386_optab[] =
   { MN_vrcpps, 0x53, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21761,8 +22978,8 @@ static const insn_template i386_optab[] =
   { MN_vrcpss, 0x53, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21772,8 +22989,8 @@ static const insn_template i386_optab[] =
   { MN_vroundps, 0x08 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21783,8 +23000,8 @@ static const insn_template i386_optab[] =
   { MN_vroundpd, 0x08 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21794,8 +23011,8 @@ static const insn_template i386_optab[] =
   { MN_vroundss, 0x0a | 0, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -21807,8 +23024,8 @@ static const insn_template i386_optab[] =
   { MN_vroundsd, 0x0a | 1, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -21820,8 +23037,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrtps, 0x52, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21829,8 +23046,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrtss, 0x52, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21840,8 +23057,8 @@ static const insn_template i386_optab[] =
   { MN_vshufps, 0xc6, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21853,8 +23070,8 @@ static const insn_template i386_optab[] =
   { MN_vshufps, 0xc6, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -21866,8 +23083,8 @@ static const insn_template i386_optab[] =
   { MN_vshufpd, 0xc6, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -21879,8 +23096,8 @@ static const insn_template i386_optab[] =
   { MN_vshufpd, 0xc6, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -21892,8 +23109,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtps, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21901,8 +23118,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtps, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21910,8 +23127,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtpd, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21919,8 +23136,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtpd, 0x51, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21928,8 +23145,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtss, 0x51, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21939,8 +23156,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtss, 0x51, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21950,8 +23167,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtsd, 0x51, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21961,8 +23178,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtsd, 0x51, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21972,15 +23189,15 @@ static const insn_template i386_optab[] =
   { MN_vstmxcsr, 0xae, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vsubps, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21990,8 +23207,8 @@ static const insn_template i386_optab[] =
   { MN_vsubps, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22001,8 +23218,8 @@ static const insn_template i386_optab[] =
   { MN_vsubpd, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22012,8 +23229,8 @@ static const insn_template i386_optab[] =
   { MN_vsubpd, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22023,8 +23240,8 @@ static const insn_template i386_optab[] =
   { MN_vsubss, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22034,8 +23251,8 @@ static const insn_template i386_optab[] =
   { MN_vsubss, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22045,8 +23262,8 @@ static const insn_template i386_optab[] =
   { MN_vsubsd, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22056,8 +23273,8 @@ static const insn_template i386_optab[] =
   { MN_vsubsd, 0x5c, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22067,8 +23284,8 @@ static const insn_template i386_optab[] =
   { MN_vtestps, 0x0e | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22076,8 +23293,8 @@ static const insn_template i386_optab[] =
   { MN_vtestpd, 0x0e | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22085,8 +23302,8 @@ static const insn_template i386_optab[] =
   { MN_vucomiss, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22094,8 +23311,8 @@ static const insn_template i386_optab[] =
   { MN_vucomiss, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22103,8 +23320,8 @@ static const insn_template i386_optab[] =
   { MN_vucomisd, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22112,8 +23329,8 @@ static const insn_template i386_optab[] =
   { MN_vucomisd, 0x2e, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 4, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22121,8 +23338,8 @@ static const insn_template i386_optab[] =
   { MN_vunpckhps, 0x15, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22132,8 +23349,8 @@ static const insn_template i386_optab[] =
   { MN_vunpckhps, 0x15, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22143,8 +23360,8 @@ static const insn_template i386_optab[] =
   { MN_vunpckhpd, 0x15, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22154,8 +23371,8 @@ static const insn_template i386_optab[] =
   { MN_vunpckhpd, 0x15, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22165,8 +23382,8 @@ static const insn_template i386_optab[] =
   { MN_vunpcklps, 0x14, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22176,8 +23393,8 @@ static const insn_template i386_optab[] =
   { MN_vunpcklps, 0x14, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22187,8 +23404,8 @@ static const insn_template i386_optab[] =
   { MN_vunpcklpd, 0x14, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22198,8 +23415,8 @@ static const insn_template i386_optab[] =
   { MN_vunpcklpd, 0x14, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22209,8 +23426,8 @@ static const insn_template i386_optab[] =
   { MN_vxorps, 0x57, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22220,8 +23437,8 @@ static const insn_template i386_optab[] =
   { MN_vxorps, 0x57, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22231,8 +23448,8 @@ static const insn_template i386_optab[] =
   { MN_vxorpd, 0x57, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22242,8 +23459,8 @@ static const insn_template i386_optab[] =
   { MN_vxorpd, 0x57, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22253,22 +23470,22 @@ static const insn_template i386_optab[] =
   { MN_vzeroall, 0x77, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vzeroupper, 0x77, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vbroadcasti128, 0x5a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22276,8 +23493,8 @@ static const insn_template i386_optab[] =
   { MN_vpblendd, 0x02, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -22289,8 +23506,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastb, 0x78 | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22298,8 +23515,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastb, 0x78 | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22307,8 +23524,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastb, 0x7a | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22316,8 +23533,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastw, 0x78 | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22325,8 +23542,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastw, 0x78 | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22334,8 +23551,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastw, 0x7a | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22343,8 +23560,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastd, 0x58, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22352,8 +23569,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastd, 0x7c, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22361,8 +23578,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastq, 0x59, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22370,8 +23587,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastq, 0x59, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22379,8 +23596,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastq, 0x7c, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22388,8 +23605,8 @@ static const insn_template i386_optab[] =
   { MN_vperm2i128, 0x46, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -22401,8 +23618,8 @@ static const insn_template i386_optab[] =
   { MN_vpermd, 0x36, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22412,8 +23629,8 @@ static const insn_template i386_optab[] =
   { MN_vpermpd, 0x01, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22423,8 +23640,8 @@ static const insn_template i386_optab[] =
   { MN_vpermpd, 0x16, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22434,8 +23651,8 @@ static const insn_template i386_optab[] =
   { MN_vpermps, 0x16, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22445,8 +23662,8 @@ static const insn_template i386_optab[] =
   { MN_vpermq, 0x00, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22456,8 +23673,8 @@ static const insn_template i386_optab[] =
   { MN_vpermq, 0x36, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22467,8 +23684,8 @@ static const insn_template i386_optab[] =
   { MN_vextracti128, 0x39, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22478,8 +23695,8 @@ static const insn_template i386_optab[] =
   { MN_vinserti128, 0x38, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -22491,8 +23708,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaskmovd, 0x8e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22502,8 +23719,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaskmovd, 0x8c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22513,8 +23730,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaskmovq, 0x8e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22524,8 +23741,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaskmovq, 0x8c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22535,8 +23752,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllvd, 0x47, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22546,8 +23763,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllvq, 0x47, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22557,8 +23774,8 @@ static const insn_template i386_optab[] =
   { MN_vpsravd, 0x46, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22568,8 +23785,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlvd, 0x45, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22579,8 +23796,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlvq, 0x45, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22590,8 +23807,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdpd, 0x92, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22601,8 +23818,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdpd, 0x92, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22610,8 +23827,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdpd, 0x92, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22619,8 +23836,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdps, 0x92, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22630,8 +23847,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdps, 0x92, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22641,8 +23858,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdps, 0x92, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22650,8 +23867,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdps, 0x92, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22659,8 +23876,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherdps, 0x92, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22668,8 +23885,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqps, 0x93, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22679,8 +23896,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqps, 0x93, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22690,8 +23907,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqps, 0x93, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22699,8 +23916,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqps, 0x93, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22708,8 +23925,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqps, 0x93, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22717,8 +23934,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqpd, 0x93, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22728,8 +23945,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqpd, 0x93, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22739,8 +23956,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqpd, 0x93, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22748,8 +23965,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqpd, 0x93, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22757,8 +23974,8 @@ static const insn_template i386_optab[] =
   { MN_vgatherqpd, 0x93, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22766,8 +23983,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdd, 0x90, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22777,8 +23994,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdd, 0x90, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22788,8 +24005,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdd, 0x90, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22797,8 +24014,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdd, 0x90, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22806,8 +24023,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdd, 0x90, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22815,8 +24032,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdq, 0x90, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22826,8 +24043,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdq, 0x90, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22835,8 +24052,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherdq, 0x90, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22844,8 +24061,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqd, 0x91, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22855,8 +24072,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqd, 0x91, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -22866,8 +24083,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqd, 0x91, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22875,8 +24092,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqd, 0x91, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22884,8 +24101,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqd, 0x91, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22893,8 +24110,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqq, 0x91, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22904,8 +24121,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqq, 0x91, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -22915,8 +24132,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqq, 0x91, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22924,8 +24141,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqq, 0x91, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22933,8 +24150,8 @@ static const insn_template i386_optab[] =
   { MN_vpgatherqq, 0x91, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22942,8 +24159,8 @@ static const insn_template i386_optab[] =
   { MN_vaesdec, 0xde, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22953,8 +24170,8 @@ static const insn_template i386_optab[] =
   { MN_vaesdec, 0xde, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22964,8 +24181,8 @@ static const insn_template i386_optab[] =
   { MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22975,8 +24192,8 @@ static const insn_template i386_optab[] =
   { MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22986,8 +24203,8 @@ static const insn_template i386_optab[] =
   { MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22997,8 +24214,8 @@ static const insn_template i386_optab[] =
   { MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23008,8 +24225,8 @@ static const insn_template i386_optab[] =
   { MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23019,8 +24236,8 @@ static const insn_template i386_optab[] =
   { MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 111, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23030,8 +24247,8 @@ static const insn_template i386_optab[] =
   { MN_vaesimc, 0xdb, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23039,8 +24256,8 @@ static const insn_template i386_optab[] =
   { MN_vaeskeygenassist, 0xdf, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -23050,8 +24267,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmulqdq, 0x44, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -23063,8 +24280,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmulqdq, 0x44, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -23076,8 +24293,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmullqlqdq, 0x44, 3, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23087,8 +24304,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmullqlqdq, 0x44, 3, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23098,8 +24315,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmulhqlqdq, 0x44, 3, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23109,8 +24326,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmulhqlqdq, 0x44, 3, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23120,8 +24337,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmullqhqdq, 0x44, 3, SPACE_0F3A, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23131,8 +24348,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmullqhqdq, 0x44, 3, SPACE_0F3A, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23142,8 +24359,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmulhqhqdq, 0x44, 3, SPACE_0F3A, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23153,8 +24370,8 @@ static const insn_template i386_optab[] =
   { MN_vpclmulhqhqdq, 0x44, 3, SPACE_0F3A, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 112, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23164,8 +24381,8 @@ static const insn_template i386_optab[] =
   { MN_vgf2p8affineinvqb, 0xcf, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -23177,8 +24394,8 @@ static const insn_template i386_optab[] =
   { MN_vgf2p8affineinvqb, 0xcf, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 110, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -23190,8 +24407,8 @@ static const insn_template i386_optab[] =
   { MN_vgf2p8affineqb, 0xce, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -23203,8 +24420,8 @@ static const insn_template i386_optab[] =
   { MN_vgf2p8affineqb, 0xce, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 110, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -23216,8 +24433,8 @@ static const insn_template i386_optab[] =
   { MN_vgf2p8mulb, 0xcf, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 110, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 110, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23227,43 +24444,43 @@ static const insn_template i386_optab[] =
   { MN_rdfsbase, 0xae, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdgsbase, 0xae, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdrand, 0xc7, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrfsbase, 0xae, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrgsbase, 0xae, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23271,8 +24488,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23280,8 +24497,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23289,8 +24506,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23298,8 +24515,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23307,8 +24524,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23318,8 +24535,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23329,8 +24546,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23340,8 +24557,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23351,8 +24568,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23362,8 +24579,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd132ps, 0x88 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23373,8 +24590,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd132pd, 0x88 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23384,8 +24601,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd132ph, 0x88 | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23395,8 +24612,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd213ps, 0x88 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23406,8 +24623,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd213pd, 0x88 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23417,8 +24634,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd213ph, 0x88 | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23428,8 +24645,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd231ps, 0x88 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23439,8 +24656,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd231pd, 0x88 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23450,8 +24667,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd231ph, 0x88 | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23461,8 +24678,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd132ss, 0x89 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23472,8 +24689,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd132sd, 0x89 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23483,8 +24700,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd132sh, 0x89 | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23494,8 +24711,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd213ss, 0x89 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23505,8 +24722,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd213sd, 0x89 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23516,8 +24733,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd213sh, 0x89 | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23527,8 +24744,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd231ss, 0x89 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23538,8 +24755,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd231sd, 0x89 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23549,8 +24766,8 @@ static const insn_template i386_optab[] =
   { MN_vfmadd231sh, 0x89 | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23560,8 +24777,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub132ps, 0x86 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23571,8 +24788,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub132pd, 0x86 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23582,8 +24799,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub132ph, 0x86 | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23593,8 +24810,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub213ps, 0x86 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23604,8 +24821,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub213pd, 0x86 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23615,8 +24832,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub213ph, 0x86 | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23626,8 +24843,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub231ps, 0x86 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23637,8 +24854,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub231pd, 0x86 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23648,8 +24865,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsub231ph, 0x86 | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23659,8 +24876,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub132ps, 0x8a | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23670,8 +24887,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub132pd, 0x8a | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23681,8 +24898,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub132ph, 0x8a | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23692,8 +24909,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub213ps, 0x8a | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23703,8 +24920,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub213pd, 0x8a | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23714,8 +24931,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub213ph, 0x8a | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23725,8 +24942,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub231ps, 0x8a | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23736,8 +24953,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub231pd, 0x8a | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23747,8 +24964,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub231ph, 0x8a | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23758,8 +24975,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub132ss, 0x8b | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23769,8 +24986,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub132sd, 0x8b | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23780,8 +24997,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub132sh, 0x8b | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23791,8 +25008,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub213ss, 0x8b | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23802,8 +25019,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub213sd, 0x8b | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23813,8 +25030,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub213sh, 0x8b | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23824,8 +25041,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub231ss, 0x8b | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23835,8 +25052,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub231sd, 0x8b | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23846,8 +25063,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsub231sh, 0x8b | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23857,8 +25074,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd132ps, 0x87 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23868,8 +25085,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd132pd, 0x87 | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23879,8 +25096,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd132ph, 0x87 | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23890,8 +25107,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd213ps, 0x87 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23901,8 +25118,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd213pd, 0x87 | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23912,8 +25129,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd213ph, 0x87 | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23923,8 +25140,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd231ps, 0x87 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23934,8 +25151,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd231pd, 0x87 | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23945,8 +25162,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubadd231ph, 0x87 | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23956,8 +25173,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd132ps, 0x8c | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23967,8 +25184,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd132pd, 0x8c | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23978,8 +25195,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd132ph, 0x8c | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23989,8 +25206,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd213ps, 0x8c | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24000,8 +25217,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd213pd, 0x8c | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24011,8 +25228,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd213ph, 0x8c | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24022,8 +25239,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd231ps, 0x8c | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24033,8 +25250,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd231pd, 0x8c | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24044,8 +25261,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd231ph, 0x8c | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24055,8 +25272,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd132ss, 0x8d | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24066,8 +25283,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd132sd, 0x8d | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24077,8 +25294,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd132sh, 0x8d | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24088,8 +25305,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd213ss, 0x8d | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24099,8 +25316,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd213sd, 0x8d | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24110,8 +25327,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd213sh, 0x8d | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24121,8 +25338,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd231ss, 0x8d | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24132,8 +25349,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd231sd, 0x8d | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24143,8 +25360,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmadd231sh, 0x8d | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24154,8 +25371,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub132ps, 0x8e | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24165,8 +25382,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub132pd, 0x8e | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24176,8 +25393,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub132ph, 0x8e | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24187,8 +25404,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub213ps, 0x8e | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24198,8 +25415,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub213pd, 0x8e | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24209,8 +25426,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub213ph, 0x8e | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24220,8 +25437,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub231ps, 0x8e | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24231,8 +25448,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub231pd, 0x8e | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24242,8 +25459,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub231ph, 0x8e | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24253,8 +25470,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub132ss, 0x8f | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24264,8 +25481,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub132sd, 0x8f | 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24275,8 +25492,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub132sh, 0x8f | 0x10, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24286,8 +25503,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub213ss, 0x8f | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24297,8 +25514,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub213sd, 0x8f | 0x20, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24308,8 +25525,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub213sh, 0x8f | 0x20, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24319,8 +25536,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub231ss, 0x8f | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24330,8 +25547,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub231sd, 0x8f | 0x30, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 41, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24341,8 +25558,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsub231sh, 0x8f | 0x30, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24352,138 +25569,226 @@ static const insn_template i386_optab[] =
   { MN_xacquire, 0xf2, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xrelease, 0xf3, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xabort, 0xc6f8, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xbegin, 0xc7f8, 1, SPACE_BASE, None,
     { 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xend, 0x01d5, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xtest, 0x01d6, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 56, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 56, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bzhi, 0xf5, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_bzhi, 0xf5, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mulx, 0xf6, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_mulx, 0xf6, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pdep, 0xf5, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_pdep, 0xf5, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pext, 0xf5, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_pext, 0xf5, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rorx, 0xf0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_rorx, 0xf0, 3, SPACE_0F3A, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sarx, 0xf7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_sarx, 0xf7, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shlx, 0xf7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shlx, 0xf7, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shrx, 0xf7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_shrx, 0xf7, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vfmaddps, 0x68 | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24495,8 +25800,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddpd, 0x68 | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24508,8 +25813,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddss, 0x6a | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24521,8 +25826,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsd, 0x6a | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24534,8 +25839,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsubps, 0x5c | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24547,8 +25852,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddsubpd, 0x5c | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24560,8 +25865,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubaddps, 0x5e | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24573,8 +25878,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubaddpd, 0x5e | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24586,8 +25891,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubps, 0x6c | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24599,8 +25904,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubpd, 0x6c | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24612,8 +25917,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubss, 0x6e | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24625,8 +25930,8 @@ static const insn_template i386_optab[] =
   { MN_vfmsubsd, 0x6e | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24638,8 +25943,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmaddps, 0x78 | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24651,8 +25956,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmaddpd, 0x78 | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24664,8 +25969,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmaddss, 0x7a | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24677,8 +25982,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmaddsd, 0x7a | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24690,8 +25995,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsubps, 0x7c | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24703,8 +26008,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsubpd, 0x7c | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24716,8 +26021,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsubss, 0x7e | 0, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24729,8 +26034,8 @@ static const insn_template i386_optab[] =
   { MN_vfnmsubsd, 0x7e | 1, 4, SPACE_0F3A, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24742,8 +26047,8 @@ static const insn_template i386_optab[] =
   { MN_vfrczps, 0x80 | 0, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24751,8 +26056,8 @@ static const insn_template i386_optab[] =
   { MN_vfrczpd, 0x80 | 1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24760,8 +26065,8 @@ static const insn_template i386_optab[] =
   { MN_vfrczss, 0x82 | 0, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24769,8 +26074,8 @@ static const insn_template i386_optab[] =
   { MN_vfrczsd, 0x82 | 1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24778,8 +26083,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmov, 0xa2, 4, SPACE_XOP08, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24791,8 +26096,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomb, 0xcc | 0x00 | 0, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24804,8 +26109,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomw, 0xcc | 0x00 | 1, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24817,8 +26122,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomd, 0xcc | 0x00 | 2, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24830,8 +26135,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomq, 0xcc | 0x00 | 3, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24843,8 +26148,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomub, 0xcc | 0x20 | 0, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24856,8 +26161,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomuw, 0xcc | 0x20 | 1, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24869,8 +26174,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomud, 0xcc | 0x20 | 2, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24882,8 +26187,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomuq, 0xcc | 0x20 | 3, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -24895,8 +26200,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24906,8 +26211,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24917,8 +26222,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24928,8 +26233,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24939,8 +26244,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24950,8 +26255,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24961,8 +26266,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24972,8 +26277,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomltuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24983,8 +26288,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomleb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24994,8 +26299,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomlew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25005,8 +26310,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomled, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25016,8 +26321,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomleq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25027,8 +26332,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomleub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25038,8 +26343,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomleuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25049,8 +26354,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomleud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25060,8 +26365,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomleuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25071,8 +26376,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25082,8 +26387,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25093,8 +26398,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25104,8 +26409,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25115,8 +26420,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25126,8 +26431,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25137,8 +26442,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25148,8 +26453,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgtuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25159,8 +26464,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgeb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25170,8 +26475,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25181,8 +26486,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomged, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25192,8 +26497,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgeq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25203,8 +26508,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgeub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25214,8 +26519,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgeuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25225,8 +26530,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgeud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25236,8 +26541,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomgeuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25247,8 +26552,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomeqb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25258,8 +26563,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomeqw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25269,8 +26574,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomeqd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25280,8 +26585,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomeqq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25291,8 +26596,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomequb, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25302,8 +26607,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomequw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25313,8 +26618,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomequd, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25324,8 +26629,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomequq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25335,8 +26640,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomneqb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25346,8 +26651,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomneqw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25357,8 +26662,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomneqd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25368,8 +26673,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomneqq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25379,8 +26684,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomnequb, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25390,8 +26695,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomnequw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25401,8 +26706,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomnequd, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25412,8 +26717,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomnequq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25423,8 +26728,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalseb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25434,8 +26739,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalsew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25445,8 +26750,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalsed, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25456,8 +26761,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalseq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25467,8 +26772,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalseub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25478,8 +26783,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalseuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25489,8 +26794,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalseud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25500,8 +26805,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomfalseuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25511,8 +26816,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtrueb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25522,8 +26827,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtruew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25533,8 +26838,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtrued, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25544,8 +26849,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtrueq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25555,8 +26860,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtrueub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25566,8 +26871,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtrueuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25577,8 +26882,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtrueud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25588,8 +26893,8 @@ static const insn_template i386_optab[] =
   { MN_vpcomtrueuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25599,8 +26904,8 @@ static const insn_template i386_optab[] =
   { MN_vpermil2ps, 0x48 | 0, 5, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25614,8 +26919,8 @@ static const insn_template i386_optab[] =
   { MN_vpermil2ps, 0x48 | 0, 5, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25629,8 +26934,8 @@ static const insn_template i386_optab[] =
   { MN_vpermil2pd, 0x48 | 1, 5, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25644,8 +26949,8 @@ static const insn_template i386_optab[] =
   { MN_vpermil2pd, 0x48 | 1, 5, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25659,8 +26964,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddbd, 0xc2 | 0, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25668,8 +26973,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddbq, 0xc2 | 1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25677,8 +26982,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddbw, 0xc1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25686,8 +26991,8 @@ static const insn_template i386_optab[] =
   { MN_vphadddq, 0xcb, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25695,8 +27000,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddubd, 0xd2 | 0, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25704,8 +27009,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddubq, 0xd2 | 1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25713,8 +27018,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddubw, 0xd1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25722,8 +27027,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddudq, 0xdb, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25731,8 +27036,8 @@ static const insn_template i386_optab[] =
   { MN_vphadduwd, 0xd6 | 0, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25740,8 +27045,8 @@ static const insn_template i386_optab[] =
   { MN_vphadduwq, 0xd6 | 1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25749,8 +27054,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddwd, 0xc6 | 0, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25758,8 +27063,8 @@ static const insn_template i386_optab[] =
   { MN_vphaddwq, 0xc6 | 1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25767,8 +27072,8 @@ static const insn_template i386_optab[] =
   { MN_vphsubbw, 0xe1, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25776,8 +27081,8 @@ static const insn_template i386_optab[] =
   { MN_vphsubdq, 0xe3, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25785,8 +27090,8 @@ static const insn_template i386_optab[] =
   { MN_vphsubwd, 0xe2, 2, SPACE_XOP09, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25794,8 +27099,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacsdd, 0x9e, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25807,8 +27112,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacsdqh, 0x9f, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25820,8 +27125,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacsdql, 0x97, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25833,8 +27138,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacssdd, 0x8e, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25846,8 +27151,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacssdqh, 0x8f, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25859,8 +27164,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacssdql, 0x87, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25872,8 +27177,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacsswd, 0x86, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25885,8 +27190,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacssww, 0x85, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25898,8 +27203,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacswd, 0x96, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25911,8 +27216,8 @@ static const insn_template i386_optab[] =
   { MN_vpmacsww, 0x95, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25924,8 +27229,8 @@ static const insn_template i386_optab[] =
   { MN_vpmadcsswd, 0xa6, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25937,8 +27242,8 @@ static const insn_template i386_optab[] =
   { MN_vpmadcswd, 0xb6, 4, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25950,8 +27255,8 @@ static const insn_template i386_optab[] =
   { MN_vpperm, 0xa3, 4, SPACE_XOP08, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25963,8 +27268,8 @@ static const insn_template i386_optab[] =
   { MN_vprotb, 0x90 | 0, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25974,8 +27279,8 @@ static const insn_template i386_optab[] =
   { MN_vprotb, 0xc0 | 0, 3, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25985,8 +27290,8 @@ static const insn_template i386_optab[] =
   { MN_vprotw, 0x90 | 1, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25996,8 +27301,8 @@ static const insn_template i386_optab[] =
   { MN_vprotw, 0xc0 | 1, 3, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26007,8 +27312,8 @@ static const insn_template i386_optab[] =
   { MN_vprotd, 0x90 | 2, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26018,8 +27323,8 @@ static const insn_template i386_optab[] =
   { MN_vprotd, 0xc0 | 2, 3, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26029,8 +27334,8 @@ static const insn_template i386_optab[] =
   { MN_vprotq, 0x90 | 3, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26040,8 +27345,8 @@ static const insn_template i386_optab[] =
   { MN_vprotq, 0xc0 | 3, 3, SPACE_XOP08, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26051,8 +27356,8 @@ static const insn_template i386_optab[] =
   { MN_vpshab, 0x98 | 0, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26062,8 +27367,8 @@ static const insn_template i386_optab[] =
   { MN_vpshaw, 0x98 | 1, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26073,8 +27378,8 @@ static const insn_template i386_optab[] =
   { MN_vpshad, 0x98 | 2, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26084,8 +27389,8 @@ static const insn_template i386_optab[] =
   { MN_vpshaq, 0x98 | 3, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26095,8 +27400,8 @@ static const insn_template i386_optab[] =
   { MN_vpshlb, 0x94 | 0, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26106,8 +27411,8 @@ static const insn_template i386_optab[] =
   { MN_vpshlw, 0x94 | 1, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26117,8 +27422,8 @@ static const insn_template i386_optab[] =
   { MN_vpshld, 0x94 | 2, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26128,8 +27433,8 @@ static const insn_template i386_optab[] =
   { MN_vpshlq, 0x94 | 3, 3, SPACE_XOP09, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26139,22 +27444,22 @@ static const insn_template i386_optab[] =
   { MN_llwpcb, 0x12, 1, SPACE_XOP09, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_slwpcb, 0x12, 1, SPACE_XOP09, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lwpval, 0x12, 3, SPACE_XOP0A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -26164,8 +27469,8 @@ static const insn_template i386_optab[] =
   { MN_lwpins, 0x12, 3, SPACE_XOP0A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -26175,30 +27480,52 @@ static const insn_template i386_optab[] =
   { MN_andn, 0xf2, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_andn, 0xf2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bextr, 0xf7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_bextr, 0xf7, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bextr, 0x10, 3, SPACE_XOP0A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -26208,35 +27535,62 @@ static const insn_template i386_optab[] =
   { MN_blsi, 0xf3, 2, SPACE_0F38, 3,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_blsi, 0xf3, 2, SPACE_0F38, 3,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_blsmsk, 0xf3, 2, SPACE_0F38, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_blsmsk, 0xf3, 2, SPACE_0F38, 2,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_blsr, 0xf3, 2, SPACE_0F38, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_blsr, 0xf3, 2, SPACE_0F38, 1,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_tzcnt, 0xbc, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -26244,8 +27598,8 @@ static const insn_template i386_optab[] =
   { MN_blcfill, 0x01, 2, SPACE_XOP09, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26253,8 +27607,8 @@ static const insn_template i386_optab[] =
   { MN_blci, 0x02, 2, SPACE_XOP09, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26262,8 +27616,8 @@ static const insn_template i386_optab[] =
   { MN_blcic, 0x01, 2, SPACE_XOP09, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26271,8 +27625,8 @@ static const insn_template i386_optab[] =
   { MN_blcmsk, 0x02, 2, SPACE_XOP09, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26280,8 +27634,8 @@ static const insn_template i386_optab[] =
   { MN_blcs, 0x01, 2, SPACE_XOP09, 3,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26289,8 +27643,8 @@ static const insn_template i386_optab[] =
   { MN_blsfill, 0x01, 2, SPACE_XOP09, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26298,8 +27652,8 @@ static const insn_template i386_optab[] =
   { MN_blsic, 0x01, 2, SPACE_XOP09, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26307,8 +27661,8 @@ static const insn_template i386_optab[] =
   { MN_t1mskc, 0x01, 2, SPACE_XOP09, 7,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26316,8 +27670,8 @@ static const insn_template i386_optab[] =
   { MN_tzmsk, 0x01, 2, SPACE_XOP09, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -26325,29 +27679,29 @@ static const insn_template i386_optab[] =
   { MN_prefetch, 0x0d, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 62, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 62, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetchw, 0x0d, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 62, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 62, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_femms, 0x0e, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pavgusb, 0x0f, 2, SPACE_0F, 0xbf,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26355,8 +27709,8 @@ static const insn_template i386_optab[] =
   { MN_pf2id, 0x0f, 2, SPACE_0F, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26364,8 +27718,8 @@ static const insn_template i386_optab[] =
   { MN_pf2iw, 0x0f, 2, SPACE_0F, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26373,8 +27727,8 @@ static const insn_template i386_optab[] =
   { MN_pfacc, 0x0f, 2, SPACE_0F, 0xae,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26382,8 +27736,8 @@ static const insn_template i386_optab[] =
   { MN_pfadd, 0x0f, 2, SPACE_0F, 0x9e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26391,8 +27745,8 @@ static const insn_template i386_optab[] =
   { MN_pfcmpeq, 0x0f, 2, SPACE_0F, 0xb0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26400,8 +27754,8 @@ static const insn_template i386_optab[] =
   { MN_pfcmpge, 0x0f, 2, SPACE_0F, 0x90,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26409,8 +27763,8 @@ static const insn_template i386_optab[] =
   { MN_pfcmpgt, 0x0f, 2, SPACE_0F, 0xa0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26418,8 +27772,8 @@ static const insn_template i386_optab[] =
   { MN_pfmax, 0x0f, 2, SPACE_0F, 0xa4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26427,8 +27781,8 @@ static const insn_template i386_optab[] =
   { MN_pfmin, 0x0f, 2, SPACE_0F, 0x94,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26436,8 +27790,8 @@ static const insn_template i386_optab[] =
   { MN_pfmul, 0x0f, 2, SPACE_0F, 0xb4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26445,8 +27799,8 @@ static const insn_template i386_optab[] =
   { MN_pfnacc, 0x0f, 2, SPACE_0F, 0x8a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26454,8 +27808,8 @@ static const insn_template i386_optab[] =
   { MN_pfpnacc, 0x0f, 2, SPACE_0F, 0x8e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26463,8 +27817,8 @@ static const insn_template i386_optab[] =
   { MN_pfrcp, 0x0f, 2, SPACE_0F, 0x96,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26472,8 +27826,8 @@ static const insn_template i386_optab[] =
   { MN_pfrcpit1, 0x0f, 2, SPACE_0F, 0xa6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26481,8 +27835,8 @@ static const insn_template i386_optab[] =
   { MN_pfrcpit2, 0x0f, 2, SPACE_0F, 0xb6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26490,8 +27844,8 @@ static const insn_template i386_optab[] =
   { MN_pfrsqit1, 0x0f, 2, SPACE_0F, 0xa7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26499,8 +27853,8 @@ static const insn_template i386_optab[] =
   { MN_pfrsqrt, 0x0f, 2, SPACE_0F, 0x97,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26508,8 +27862,8 @@ static const insn_template i386_optab[] =
   { MN_pfsub, 0x0f, 2, SPACE_0F, 0x9a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26517,8 +27871,8 @@ static const insn_template i386_optab[] =
   { MN_pfsubr, 0x0f, 2, SPACE_0F, 0xaa,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26526,8 +27880,8 @@ static const insn_template i386_optab[] =
   { MN_pi2fd, 0x0f, 2, SPACE_0F, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26535,8 +27889,8 @@ static const insn_template i386_optab[] =
   { MN_pi2fw, 0x0f, 2, SPACE_0F, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26544,8 +27898,8 @@ static const insn_template i386_optab[] =
   { MN_pmulhrw, 0x0f, 2, SPACE_0F, 0xb7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26553,8 +27907,8 @@ static const insn_template i386_optab[] =
   { MN_pswapd, 0x0f, 2, SPACE_0F, 0xbb,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26562,50 +27916,50 @@ static const insn_template i386_optab[] =
   { MN_syscall, 0x05, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysret, 0x07, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_swapgs, 0x01f8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdtscp, 0x01f9, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clgi, 0x01dd, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpga, 0x01df, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpga, 0x01df, 2, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -26613,85 +27967,85 @@ static const insn_template i386_optab[] =
   { MN_skinit, 0x01de, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_skinit, 0x01de, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stgi, 0x01dc, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmgexit, 0x01d9, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmload, 0x01da, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmload, 0x01da, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmmcall, 0x01d9, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmrun, 0x01d8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmrun, 0x01d8, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmsave, 0x01db, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmsave, 0x01db, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movntsd, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -26699,8 +28053,8 @@ static const insn_template i386_optab[] =
   { MN_movntss, 0x2b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -26708,8 +28062,8 @@ static const insn_template i386_optab[] =
   { MN_extrq, 0x78, 3, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26719,8 +28073,8 @@ static const insn_template i386_optab[] =
   { MN_extrq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26728,8 +28082,8 @@ static const insn_template i386_optab[] =
   { MN_insertq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26737,8 +28091,8 @@ static const insn_template i386_optab[] =
   { MN_insertq, 0x78, 4, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26750,8 +28104,8 @@ static const insn_template i386_optab[] =
   { MN_lzcnt, 0xbd, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -26759,8 +28113,8 @@ static const insn_template i386_optab[] =
   { MN_popcnt, 0xb8, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -26768,166 +28122,206 @@ static const insn_template i386_optab[] =
   { MN_xstore_rng, 0xa7c0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_ecb, 0xa7c8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_cbc, 0xa7d0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_ctr, 0xa7d8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_cfb, 0xa7e0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_ofb, 0xa7e8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_montmul, 0xa6c0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsha1, 0xa6c8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsha256, 0xa6d0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xstorerng, 0xa7c0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptecb, 0xa7c8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptcbc, 0xa7d0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptctr, 0xa7d8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptcfb, 0xa7e0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptofb, 0xa7e8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xstore, 0xa7c0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_adcx, 0xf6, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_adcx, 0x66, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_adcx, 0x66, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_adox, 0xf6, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_adox, 0x66, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_adox, 0x66, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdseed, 0xc7, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clac, 0x01ca, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stac, 0x01cb, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bnd, 0xf2, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bndmk, 0x1b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26935,8 +28329,8 @@ static const insn_template i386_optab[] =
   { MN_bndmov, 0x1a, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26944,8 +28338,8 @@ static const insn_template i386_optab[] =
   { MN_bndcl, 0x1a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26953,8 +28347,8 @@ static const insn_template i386_optab[] =
   { MN_bndcl, 0x1a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26962,8 +28356,8 @@ static const insn_template i386_optab[] =
   { MN_bndcu, 0x1a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26971,8 +28365,8 @@ static const insn_template i386_optab[] =
   { MN_bndcu, 0x1a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26980,8 +28374,8 @@ static const insn_template i386_optab[] =
   { MN_bndcn, 0x1b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26989,8 +28383,8 @@ static const insn_template i386_optab[] =
   { MN_bndcn, 0x1b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26998,8 +28392,8 @@ static const insn_template i386_optab[] =
   { MN_bndstx, 0x1b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27007,8 +28401,8 @@ static const insn_template i386_optab[] =
   { MN_bndldx, 0x1a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27016,46 +28410,84 @@ static const insn_template i386_optab[] =
   { MN_sha1rnds4, 0xcc, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_sha1rnds4, 0xd4, 3, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_sha1nexte, 0xc8, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_sha1nexte, 0xd8, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_sha1msg1, 0xc9, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_sha1msg1, 0xd9, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_sha1msg2, 0xca, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_sha1msg2, 0xda, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_sha256rnds2, 0xcb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27065,35 +28497,62 @@ static const insn_template i386_optab[] =
   { MN_sha256rnds2, 0xcb, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_sha256rnds2, 0xdb, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_sha256msg1, 0xcc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_sha256msg1, 0xdc, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_sha256msg2, 0xcd, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_sha256msg2, 0xdd, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_vsha512rnds2, 0xcb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27103,8 +28562,8 @@ static const insn_template i386_optab[] =
   { MN_vsha512msg1, 0xcc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27112,8 +28571,8 @@ static const insn_template i386_optab[] =
   { MN_vsha512msg2, 0xcd, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27121,8 +28580,8 @@ static const insn_template i386_optab[] =
   { MN_vsm3rnds2, 0xde, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27134,8 +28593,8 @@ static const insn_template i386_optab[] =
   { MN_vsm3msg1, 0xda, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27145,8 +28604,8 @@ static const insn_template i386_optab[] =
   { MN_vsm3msg2, 0xda, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27156,8 +28615,8 @@ static const insn_template i386_optab[] =
   { MN_vsm4key4, 0xda, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27167,8 +28626,8 @@ static const insn_template i386_optab[] =
   { MN_vsm4rnds4, 0xda, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27178,8 +28637,8 @@ static const insn_template i386_optab[] =
   { MN_kandb, 0x41, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27189,8 +28648,8 @@ static const insn_template i386_optab[] =
   { MN_kandw, 0x41, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27200,8 +28659,8 @@ static const insn_template i386_optab[] =
   { MN_kandnb, 0x42, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27211,8 +28670,8 @@ static const insn_template i386_optab[] =
   { MN_kandnw, 0x42, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27222,8 +28681,8 @@ static const insn_template i386_optab[] =
   { MN_korb, 0x45, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27233,8 +28692,8 @@ static const insn_template i386_optab[] =
   { MN_korw, 0x45, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27244,8 +28703,8 @@ static const insn_template i386_optab[] =
   { MN_kxnorb, 0x46, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27255,8 +28714,8 @@ static const insn_template i386_optab[] =
   { MN_kxnorw, 0x46, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27266,8 +28725,8 @@ static const insn_template i386_optab[] =
   { MN_kxorb, 0x47, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27277,8 +28736,8 @@ static const insn_template i386_optab[] =
   { MN_kxorw, 0x47, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27288,26 +28747,53 @@ static const insn_template i386_optab[] =
   { MN_kmovb, 0x90, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovb, 0x90, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_kmovb, 0x91, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_kmovb, 0x91, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_kmovb, 0x92, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovb, 0x92, 2, SPACE_0F, None,
+    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27315,26 +28801,53 @@ static const insn_template i386_optab[] =
   { MN_kmovw, 0x90, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovw, 0x90, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_kmovw, 0x91, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_kmovw, 0x91, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_kmovw, 0x92, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovw, 0x92, 2, SPACE_0F, None,
+    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27342,8 +28855,8 @@ static const insn_template i386_optab[] =
   { MN_knotb, 0x44, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27351,8 +28864,8 @@ static const insn_template i386_optab[] =
   { MN_knotw, 0x44, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27360,8 +28873,8 @@ static const insn_template i386_optab[] =
   { MN_kortestb, 0x98, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27369,8 +28882,8 @@ static const insn_template i386_optab[] =
   { MN_kortestw, 0x98, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27378,8 +28891,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftlb, 0x32, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27389,8 +28902,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftlw, 0x32, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27400,8 +28913,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftrb, 0x30, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27411,8 +28924,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftrw, 0x30, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27422,8 +28935,8 @@ static const insn_template i386_optab[] =
   { MN_kunpckbw, 0x4b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 1 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27433,8 +28946,8 @@ static const insn_template i386_optab[] =
   { MN_vaddph, 0x58, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27444,8 +28957,8 @@ static const insn_template i386_optab[] =
   { MN_vdivph, 0x5e, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27455,8 +28968,8 @@ static const insn_template i386_optab[] =
   { MN_vmulph, 0x59, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27466,8 +28979,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtph, 0x51, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27475,8 +28988,8 @@ static const insn_template i386_optab[] =
   { MN_vsubph, 0x5c, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27486,8 +28999,8 @@ static const insn_template i386_optab[] =
   { MN_vaddsh, 0x58, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27497,8 +29010,8 @@ static const insn_template i386_optab[] =
   { MN_vdivsh, 0x5e, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27508,8 +29021,8 @@ static const insn_template i386_optab[] =
   { MN_vmulsh, 0x59, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27519,8 +29032,8 @@ static const insn_template i386_optab[] =
   { MN_vsqrtsh, 0x51, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27530,8 +29043,8 @@ static const insn_template i386_optab[] =
   { MN_vsubsh, 0x5c, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27541,8 +29054,8 @@ static const insn_template i386_optab[] =
   { MN_valignd, 0x03, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27554,8 +29067,8 @@ static const insn_template i386_optab[] =
   { MN_valignq, 0x03, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -27567,8 +29080,8 @@ static const insn_template i386_optab[] =
   { MN_vblendmps, 0x65, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27578,8 +29091,8 @@ static const insn_template i386_optab[] =
   { MN_vblendmpd, 0x65, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27589,8 +29102,8 @@ static const insn_template i386_optab[] =
   { MN_vpblendmd, 0x64, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27600,8 +29113,8 @@ static const insn_template i386_optab[] =
   { MN_vpblendmq, 0x64, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27611,8 +29124,8 @@ static const insn_template i386_optab[] =
   { MN_vpermi2d, 0x76, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27622,8 +29135,8 @@ static const insn_template i386_optab[] =
   { MN_vpermi2q, 0x76, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27633,8 +29146,8 @@ static const insn_template i386_optab[] =
   { MN_vpermi2ps, 0x77, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27644,8 +29157,8 @@ static const insn_template i386_optab[] =
   { MN_vpermi2pd, 0x77, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27655,8 +29168,8 @@ static const insn_template i386_optab[] =
   { MN_vpermt2d, 0x7e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27666,8 +29179,8 @@ static const insn_template i386_optab[] =
   { MN_vpermt2q, 0x7e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27677,8 +29190,8 @@ static const insn_template i386_optab[] =
   { MN_vpermt2ps, 0x7f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27688,8 +29201,8 @@ static const insn_template i386_optab[] =
   { MN_vpermt2pd, 0x7f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27699,8 +29212,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxsq, 0x3d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27710,8 +29223,8 @@ static const insn_template i386_optab[] =
   { MN_vpmaxuq, 0x3f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27721,8 +29234,8 @@ static const insn_template i386_optab[] =
   { MN_vpminsq, 0x39, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27732,8 +29245,8 @@ static const insn_template i386_optab[] =
   { MN_vpminuq, 0x3b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27743,8 +29256,8 @@ static const insn_template i386_optab[] =
   { MN_vprolvd, 0x15, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27754,8 +29267,8 @@ static const insn_template i386_optab[] =
   { MN_vprolvq, 0x15, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27765,8 +29278,8 @@ static const insn_template i386_optab[] =
   { MN_vprorvd, 0x14, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27776,8 +29289,8 @@ static const insn_template i386_optab[] =
   { MN_vprorvq, 0x14, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27787,8 +29300,8 @@ static const insn_template i386_optab[] =
   { MN_vpsravq, 0x46, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27798,8 +29311,8 @@ static const insn_template i386_optab[] =
   { MN_vpternlogd, 0x25, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27811,8 +29324,8 @@ static const insn_template i386_optab[] =
   { MN_vpternlogq, 0x25, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -27824,8 +29337,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastf32x4, 0x1a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27833,8 +29346,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcasti32x4, 0x5a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27842,8 +29355,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastf64x4, 0x1b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27851,8 +29364,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcasti64x4, 0x5b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27860,8 +29373,8 @@ static const insn_template i386_optab[] =
   { MN_vcomish, 0x2f, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27869,8 +29382,8 @@ static const insn_template i386_optab[] =
   { MN_vucomish, 0x2e, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27878,8 +29391,8 @@ static const insn_template i386_optab[] =
   { MN_vcompresspd, 0x8a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27887,8 +29400,8 @@ static const insn_template i386_optab[] =
   { MN_vcompressps, 0x8a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27896,8 +29409,8 @@ static const insn_template i386_optab[] =
   { MN_vpcompressq, 0x8b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27905,8 +29418,8 @@ static const insn_template i386_optab[] =
   { MN_vpcompressd, 0x8b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27914,8 +29427,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterdd, 0xa0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27923,8 +29436,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterdd, 0xa0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27932,8 +29445,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterdd, 0xa0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27941,8 +29454,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterdq, 0xa0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -27950,8 +29463,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterdq, 0xa0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -27959,8 +29472,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterqd, 0xa1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27968,8 +29481,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterqd, 0xa1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27977,8 +29490,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterqd, 0xa1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27986,8 +29499,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterqq, 0xa1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -27995,8 +29508,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterqq, 0xa1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28004,8 +29517,8 @@ static const insn_template i386_optab[] =
   { MN_vpscatterqq, 0xa1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28013,8 +29526,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterdpd, 0xa2, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28022,8 +29535,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterdpd, 0xa2, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28031,8 +29544,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterdps, 0xa2, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28040,8 +29553,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterdps, 0xa2, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28049,8 +29562,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterdps, 0xa2, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28058,8 +29571,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterqpd, 0xa3, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28067,8 +29580,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterqpd, 0xa3, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 1, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28076,8 +29589,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterqpd, 0xa3, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28085,8 +29598,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterqps, 0xa3, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28094,8 +29607,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterqps, 0xa3, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28103,8 +29616,8 @@ static const insn_template i386_optab[] =
   { MN_vscatterqps, 0xa3, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 2, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28112,8 +29625,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2pd, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 3, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28121,8 +29634,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2pd, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28130,8 +29643,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2pd, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28139,8 +29652,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2udq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28148,8 +29661,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2udq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28157,8 +29670,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2udq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28166,8 +29679,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2udq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28175,8 +29688,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2udqx, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28184,8 +29697,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2udqy, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28193,8 +29706,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtss2usi, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28202,8 +29715,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsd2usi, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28211,8 +29724,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsh2usi, 0x79, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28220,8 +29733,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2sd, 0x7b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28231,8 +29744,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2sd, 0x7b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28242,8 +29755,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2sd, 0x7b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28253,8 +29766,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2sd, 0x7b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 3, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28264,8 +29777,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2ss, 0x7b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28275,8 +29788,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2ss, 0x7b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28286,8 +29799,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2udq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28295,8 +29808,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2udq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28304,8 +29817,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2udq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28313,8 +29826,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2udqx, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28322,8 +29835,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2udqy, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28331,8 +29844,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2udq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28340,8 +29853,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttss2usi, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28349,8 +29862,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttsd2usi, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28358,8 +29871,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttsh2usi, 0x78, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28367,8 +29880,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2ps, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28376,8 +29889,8 @@ static const insn_template i386_optab[] =
   { MN_vexpandpd, 0x88, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28385,8 +29898,8 @@ static const insn_template i386_optab[] =
   { MN_vpexpandq, 0x89, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28394,8 +29907,8 @@ static const insn_template i386_optab[] =
   { MN_vexpandps, 0x88, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28403,8 +29916,8 @@ static const insn_template i386_optab[] =
   { MN_vpexpandd, 0x89, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28412,8 +29925,8 @@ static const insn_template i386_optab[] =
   { MN_vextractf32x4, 0x19, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28423,8 +29936,8 @@ static const insn_template i386_optab[] =
   { MN_vextracti32x4, 0x39, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28434,8 +29947,8 @@ static const insn_template i386_optab[] =
   { MN_vextractf64x4, 0x1b, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28445,8 +29958,8 @@ static const insn_template i386_optab[] =
   { MN_vextracti64x4, 0x3b, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28456,8 +29969,8 @@ static const insn_template i386_optab[] =
   { MN_vfixupimmps, 0x54, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28469,8 +29982,8 @@ static const insn_template i386_optab[] =
   { MN_vfixupimmpd, 0x54, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28482,8 +29995,8 @@ static const insn_template i386_optab[] =
   { MN_vfixupimmss, 0x55, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28495,8 +30008,8 @@ static const insn_template i386_optab[] =
   { MN_vfixupimmsd, 0x55, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28508,8 +30021,8 @@ static const insn_template i386_optab[] =
   { MN_vgetmantps, 0x26, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28519,8 +30032,8 @@ static const insn_template i386_optab[] =
   { MN_vgetmantpd, 0x26, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28530,8 +30043,8 @@ static const insn_template i386_optab[] =
   { MN_vgetmantph, 0x26, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -28541,8 +30054,8 @@ static const insn_template i386_optab[] =
   { MN_vgetmantss, 0x27, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28554,8 +30067,8 @@ static const insn_template i386_optab[] =
   { MN_vgetmantsd, 0x27, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28567,8 +30080,8 @@ static const insn_template i386_optab[] =
   { MN_vgetmantsh, 0x27, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -28580,8 +30093,8 @@ static const insn_template i386_optab[] =
   { MN_vrndscaleps, 0x08 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28591,8 +30104,8 @@ static const insn_template i386_optab[] =
   { MN_vrndscalepd, 0x08 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28602,8 +30115,8 @@ static const insn_template i386_optab[] =
   { MN_vrndscaleph, 0x08 | 0, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -28613,8 +30126,8 @@ static const insn_template i386_optab[] =
   { MN_vrndscaless, 0x0a | 0, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -28626,8 +30139,8 @@ static const insn_template i386_optab[] =
   { MN_vrndscalesd, 0x0a | 1, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28639,8 +30152,8 @@ static const insn_template i386_optab[] =
   { MN_vrndscalesh, 0x0a | 0, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -28652,8 +30165,8 @@ static const insn_template i386_optab[] =
   { MN_vscalefps, 0x2c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28663,8 +30176,8 @@ static const insn_template i386_optab[] =
   { MN_vscalefpd, 0x2c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28674,8 +30187,8 @@ static const insn_template i386_optab[] =
   { MN_vscalefph, 0x2c, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28685,8 +30198,8 @@ static const insn_template i386_optab[] =
   { MN_vscalefss, 0x2d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28696,8 +30209,8 @@ static const insn_template i386_optab[] =
   { MN_vscalefsd, 0x2d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28707,8 +30220,8 @@ static const insn_template i386_optab[] =
   { MN_vscalefsh, 0x2d, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28718,8 +30231,8 @@ static const insn_template i386_optab[] =
   { MN_vgetexpps, 0x42, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28727,8 +30240,8 @@ static const insn_template i386_optab[] =
   { MN_vgetexppd, 0x42, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28736,8 +30249,8 @@ static const insn_template i386_optab[] =
   { MN_vgetexpph, 0x42, 2, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28745,8 +30258,8 @@ static const insn_template i386_optab[] =
   { MN_vgetexpss, 0x43, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28756,8 +30269,8 @@ static const insn_template i386_optab[] =
   { MN_vgetexpsd, 0x43, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28767,8 +30280,8 @@ static const insn_template i386_optab[] =
   { MN_vgetexpsh, 0x43, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28778,8 +30291,8 @@ static const insn_template i386_optab[] =
   { MN_vinsertf32x4, 0x18, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28791,8 +30304,8 @@ static const insn_template i386_optab[] =
   { MN_vinserti32x4, 0x38, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28804,8 +30317,8 @@ static const insn_template i386_optab[] =
   { MN_vinsertf64x4, 0x1a, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28817,8 +30330,8 @@ static const insn_template i386_optab[] =
   { MN_vinserti64x4, 0x3a, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28830,8 +30343,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxph, 0x5f, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28841,8 +30354,8 @@ static const insn_template i386_optab[] =
   { MN_vmaxsh, 0x5f, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28852,8 +30365,8 @@ static const insn_template i386_optab[] =
   { MN_vminph, 0x5d, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28863,8 +30376,8 @@ static const insn_template i386_optab[] =
   { MN_vminsh, 0x5d, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28874,8 +30387,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqa64, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28883,8 +30396,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqa32, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28892,8 +30405,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqu32, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28901,8 +30414,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqu64, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28910,8 +30423,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsh, 0x10, 2, SPACE_EVEXMAP5, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28919,8 +30432,8 @@ static const insn_template i386_optab[] =
   { MN_vmovsh, 0x10, 3, SPACE_EVEXMAP5, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28930,8 +30443,8 @@ static const insn_template i386_optab[] =
   { MN_vpabsq, 0x1e | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28939,8 +30452,8 @@ static const insn_template i386_optab[] =
   { MN_vpandd, 0xdb, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28950,8 +30463,8 @@ static const insn_template i386_optab[] =
   { MN_vpandq, 0xdb, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28961,8 +30474,8 @@ static const insn_template i386_optab[] =
   { MN_vpandnd, 0xdf, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28972,8 +30485,8 @@ static const insn_template i386_optab[] =
   { MN_vpandnq, 0xdf, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28983,8 +30496,8 @@ static const insn_template i386_optab[] =
   { MN_vpord, 0xeb, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28994,8 +30507,8 @@ static const insn_template i386_optab[] =
   { MN_vporq, 0xeb, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29005,8 +30518,8 @@ static const insn_template i386_optab[] =
   { MN_vpxord, 0xef, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29016,8 +30529,8 @@ static const insn_template i386_optab[] =
   { MN_vpxorq, 0xef, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29027,8 +30540,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpd, 0x1f, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29040,8 +30553,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpq, 0x1f, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29053,8 +30566,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpud, 0x1e, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29066,8 +30579,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpuq, 0x1e, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29079,8 +30592,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltd, 0x1f, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29090,8 +30603,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltq, 0x1f, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29101,8 +30614,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpled, 0x1f, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29112,8 +30625,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpleq, 0x1f, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29123,8 +30636,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpneqd, 0x1f, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29134,8 +30647,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpneqq, 0x1f, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29145,8 +30658,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltd, 0x1f, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29156,8 +30669,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltq, 0x1f, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29167,8 +30680,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnled, 0x1f, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29178,8 +30691,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnleq, 0x1f, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29189,8 +30702,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpequd, 0x1e, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29200,8 +30713,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpequq, 0x1e, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29211,8 +30724,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltud, 0x1e, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29222,8 +30735,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltuq, 0x1e, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29233,8 +30746,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpleud, 0x1e, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29244,8 +30757,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpleuq, 0x1e, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29255,8 +30768,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnequd, 0x1e, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29266,8 +30779,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnequq, 0x1e, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29277,8 +30790,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltud, 0x1e, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29288,8 +30801,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltuq, 0x1e, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29299,8 +30812,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnleud, 0x1e, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29310,8 +30823,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnleuq, 0x1e, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29321,8 +30834,8 @@ static const insn_template i386_optab[] =
   { MN_vptestmd, 0x27, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29332,8 +30845,8 @@ static const insn_template i386_optab[] =
   { MN_vptestmq, 0x27, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29343,8 +30856,8 @@ static const insn_template i386_optab[] =
   { MN_vptestnmd, 0x27, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29354,8 +30867,8 @@ static const insn_template i386_optab[] =
   { MN_vptestnmq, 0x27, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29365,8 +30878,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovdb, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29374,8 +30887,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovdb, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29383,8 +30896,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovdb, 0x31, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29392,8 +30905,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsdb, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29401,8 +30914,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsdb, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29410,8 +30923,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsdb, 0x21, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29419,8 +30932,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusdb, 0x11, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29428,8 +30941,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusdb, 0x11, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29437,8 +30950,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusdb, 0x11, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29446,8 +30959,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovdw, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29455,8 +30968,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovdw, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29464,8 +30977,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovdw, 0x33, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29473,8 +30986,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsdw, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29482,8 +30995,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsdw, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29491,8 +31004,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsdw, 0x23, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29500,8 +31013,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusdw, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29509,8 +31022,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusdw, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29518,8 +31031,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusdw, 0x13, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29527,8 +31040,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqb, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29536,8 +31049,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqb, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -29545,8 +31058,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqb, 0x32, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29554,8 +31067,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqb, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29563,8 +31076,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqb, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -29572,8 +31085,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqb, 0x22, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29581,8 +31094,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqb, 0x12, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29590,8 +31103,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqb, 0x12, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -29599,8 +31112,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqb, 0x12, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29608,8 +31121,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqd, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29617,8 +31130,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqd, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29626,8 +31139,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqd, 0x35, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29635,8 +31148,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqd, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29644,8 +31157,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqd, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29653,8 +31166,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqd, 0x25, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29662,8 +31175,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqd, 0x15, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29671,8 +31184,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqd, 0x15, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29680,8 +31193,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqd, 0x15, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29689,8 +31202,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqw, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29698,8 +31211,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqw, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29707,8 +31220,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovqw, 0x34, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29716,8 +31229,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqw, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29725,8 +31238,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqw, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29734,8 +31247,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovsqw, 0x24, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29743,8 +31256,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqw, 0x14, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29752,8 +31265,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqw, 0x14, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29761,8 +31274,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovusqw, 0x14, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29770,8 +31283,8 @@ static const insn_template i386_optab[] =
   { MN_vprold, 0x72, 3, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29781,8 +31294,8 @@ static const insn_template i386_optab[] =
   { MN_vprolq, 0x72, 3, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29792,8 +31305,8 @@ static const insn_template i386_optab[] =
   { MN_vprord, 0x72, 3, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29803,8 +31316,8 @@ static const insn_template i386_optab[] =
   { MN_vprorq, 0x72, 3, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29814,8 +31327,8 @@ static const insn_template i386_optab[] =
   { MN_vpsraq, 0xe2, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29825,8 +31338,8 @@ static const insn_template i386_optab[] =
   { MN_vpsraq, 0x72, 3, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29836,8 +31349,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp14ps, 0x4c, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29845,8 +31358,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp14pd, 0x4c, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29854,8 +31367,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp14ss, 0x4d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29865,8 +31378,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp14sd, 0x4d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29876,8 +31389,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt14ps, 0x4e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29885,8 +31398,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt14pd, 0x4e, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29894,8 +31407,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt14ss, 0x4f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29905,8 +31418,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt14sd, 0x4f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29916,8 +31429,8 @@ static const insn_template i386_optab[] =
   { MN_vshuff32x4, 0x23, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29929,8 +31442,8 @@ static const insn_template i386_optab[] =
   { MN_vshufi32x4, 0x43, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -29942,8 +31455,8 @@ static const insn_template i386_optab[] =
   { MN_vshuff64x2, 0x23, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29955,8 +31468,8 @@ static const insn_template i386_optab[] =
   { MN_vshufi64x2, 0x43, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -29968,8 +31481,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastmb2q, 0x2a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29977,8 +31490,8 @@ static const insn_template i386_optab[] =
   { MN_vpbroadcastmw2d, 0x3a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29986,8 +31499,8 @@ static const insn_template i386_optab[] =
   { MN_vpconflictd, 0xc4, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29995,8 +31508,8 @@ static const insn_template i386_optab[] =
   { MN_vpconflictq, 0xc4, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30004,8 +31517,8 @@ static const insn_template i386_optab[] =
   { MN_vplzcntd, 0x44, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30013,8 +31526,8 @@ static const insn_template i386_optab[] =
   { MN_vplzcntq, 0x44, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30022,8 +31535,8 @@ static const insn_template i386_optab[] =
   { MN_vexp2ps, 0xc8, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30031,8 +31544,8 @@ static const insn_template i386_optab[] =
   { MN_vexp2pd, 0xc8, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30040,8 +31553,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp28ps, 0xca, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30049,8 +31562,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp28pd, 0xca, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30058,8 +31571,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp28ss, 0xcb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30069,8 +31582,8 @@ static const insn_template i386_optab[] =
   { MN_vrcp28sd, 0xcb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30080,8 +31593,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt28ps, 0xcc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30089,8 +31602,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt28pd, 0xcc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30098,8 +31611,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt28ss, 0xcd, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30109,8 +31622,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrt28sd, 0xcd, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30120,197 +31633,197 @@ static const insn_template i386_optab[] =
   { MN_vgatherpf0dpd, 0xc6, 1, SPACE_0F38, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf0dps, 0xc6, 1, SPACE_0F38, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf0qps, 0xc7, 1, SPACE_0F38, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf0qpd, 0xc7, 1, SPACE_0F38, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1dpd, 0xc6, 1, SPACE_0F38, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1dps, 0xc6, 1, SPACE_0F38, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1qps, 0xc7, 1, SPACE_0F38, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1qpd, 0xc7, 1, SPACE_0F38, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0dpd, 0xc6, 1, SPACE_0F38, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0dps, 0xc6, 1, SPACE_0F38, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0qps, 0xc7, 1, SPACE_0F38, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0qpd, 0xc7, 1, SPACE_0F38, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1dpd, 0xc6, 1, SPACE_0F38, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1dps, 0xc6, 1, SPACE_0F38, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1qps, 0xc7, 1, SPACE_0F38, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1qpd, 0xc7, 1, SPACE_0F38, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_prefetchwt1, 0x0d, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clflushopt, 0xae, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xrstors, 0xc7, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xrstors64, 0xc7, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 69, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 69, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsaves, 0xc7, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsaves64, 0xc7, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 69, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 69, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsavec, 0xc7, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsavec64, 0xc7, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 70, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 70, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_encls, 0x01cf, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_enclu, 0x01d7, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_enclv, 0x01c0, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_kaddd, 0x4a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30320,8 +31833,8 @@ static const insn_template i386_optab[] =
   { MN_kaddq, 0x4a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30331,8 +31844,8 @@ static const insn_template i386_optab[] =
   { MN_kandd, 0x41, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30342,8 +31855,8 @@ static const insn_template i386_optab[] =
   { MN_kandq, 0x41, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30353,8 +31866,8 @@ static const insn_template i386_optab[] =
   { MN_kandnd, 0x42, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30364,8 +31877,8 @@ static const insn_template i386_optab[] =
   { MN_kandnq, 0x42, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30375,26 +31888,53 @@ static const insn_template i386_optab[] =
   { MN_kmovd, 0x90, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovd, 0x90, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_kmovd, 0x91, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_kmovd, 0x91, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_kmovd, 0x92, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovd, 0x92, 2, SPACE_0F, None,
+    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30402,26 +31942,53 @@ static const insn_template i386_optab[] =
   { MN_kmovq, 0x90, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovq, 0x90, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_kmovq, 0x91, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_kmovq, 0x91, 2, SPACE_0F, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_kmovq, 0x92, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_kmovq, 0x92, 2, SPACE_0F, None,
+    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30429,8 +31996,8 @@ static const insn_template i386_optab[] =
   { MN_knotd, 0x44, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30438,8 +32005,8 @@ static const insn_template i386_optab[] =
   { MN_knotq, 0x44, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30447,8 +32014,8 @@ static const insn_template i386_optab[] =
   { MN_kord, 0x45, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30458,8 +32025,8 @@ static const insn_template i386_optab[] =
   { MN_korq, 0x45, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30469,8 +32036,8 @@ static const insn_template i386_optab[] =
   { MN_kortestd, 0x98, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30478,8 +32045,8 @@ static const insn_template i386_optab[] =
   { MN_kortestq, 0x98, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30487,8 +32054,8 @@ static const insn_template i386_optab[] =
   { MN_ktestd, 0x99, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30496,8 +32063,8 @@ static const insn_template i386_optab[] =
   { MN_ktestq, 0x99, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30505,8 +32072,8 @@ static const insn_template i386_optab[] =
   { MN_kxnord, 0x46, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30516,8 +32083,8 @@ static const insn_template i386_optab[] =
   { MN_kxnorq, 0x46, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30527,8 +32094,8 @@ static const insn_template i386_optab[] =
   { MN_kxord, 0x47, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30538,8 +32105,8 @@ static const insn_template i386_optab[] =
   { MN_kxorq, 0x47, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30549,8 +32116,8 @@ static const insn_template i386_optab[] =
   { MN_kunpckdq, 0x4b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30560,8 +32127,8 @@ static const insn_template i386_optab[] =
   { MN_kunpckwd, 0x4b, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30571,8 +32138,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftld, 0x33, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30582,8 +32149,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftlq, 0x33, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30593,8 +32160,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftrd, 0x31, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30604,8 +32171,8 @@ static const insn_template i386_optab[] =
   { MN_kshiftrq, 0x31, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30615,8 +32182,8 @@ static const insn_template i386_optab[] =
   { MN_vdbpsadbw, 0x42, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30628,8 +32195,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqu8, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30637,8 +32204,8 @@ static const insn_template i386_optab[] =
   { MN_vmovdqu16, 0x6f, 2, SPACE_0F, None,
     { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 0, 0, 0, 7, 0, 1, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30646,8 +32213,8 @@ static const insn_template i386_optab[] =
   { MN_vpblendmb, 0x66, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30657,8 +32224,8 @@ static const insn_template i386_optab[] =
   { MN_vpblendmw, 0x66, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30668,8 +32235,8 @@ static const insn_template i386_optab[] =
   { MN_vpermi2b, 0x75, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30679,8 +32246,8 @@ static const insn_template i386_optab[] =
   { MN_vpermi2w, 0x75, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30690,8 +32257,8 @@ static const insn_template i386_optab[] =
   { MN_vpermt2b, 0x7d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30701,8 +32268,8 @@ static const insn_template i386_optab[] =
   { MN_vpermt2w, 0x7d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30712,8 +32279,8 @@ static const insn_template i386_optab[] =
   { MN_vpermb, 0x8d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30723,8 +32290,8 @@ static const insn_template i386_optab[] =
   { MN_vpermw, 0x8d, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30734,8 +32301,8 @@ static const insn_template i386_optab[] =
   { MN_vpsllvw, 0x12, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30745,8 +32312,8 @@ static const insn_template i386_optab[] =
   { MN_vpsravw, 0x11, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30756,8 +32323,8 @@ static const insn_template i386_optab[] =
   { MN_vpsrlvw, 0x10, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30767,8 +32334,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpb, 0x3f, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30780,8 +32347,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpw, 0x3f, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30793,8 +32360,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpub, 0x3e, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30806,8 +32373,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpuw, 0x3e, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30819,8 +32386,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltb, 0x3f, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30830,8 +32397,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltw, 0x3f, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30841,8 +32408,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpleb, 0x3f, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30852,8 +32419,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmplew, 0x3f, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30863,8 +32430,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpneqb, 0x3f, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30874,8 +32441,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpneqw, 0x3f, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30885,8 +32452,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltb, 0x3f, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30896,8 +32463,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltw, 0x3f, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30907,8 +32474,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnleb, 0x3f, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30918,8 +32485,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnlew, 0x3f, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30929,8 +32496,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpequb, 0x3e, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30940,8 +32507,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpequw, 0x3e, 3, SPACE_0F3A, 0,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30951,8 +32518,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltub, 0x3e, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30962,8 +32529,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpltuw, 0x3e, 3, SPACE_0F3A, 1,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30973,8 +32540,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpleub, 0x3e, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30984,8 +32551,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpleuw, 0x3e, 3, SPACE_0F3A, 2,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30995,8 +32562,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnequb, 0x3e, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31006,8 +32573,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnequw, 0x3e, 3, SPACE_0F3A, 4,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31017,8 +32584,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltub, 0x3e, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31028,8 +32595,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnltuw, 0x3e, 3, SPACE_0F3A, 5,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31039,8 +32606,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnleub, 0x3e, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31050,8 +32617,8 @@ static const insn_template i386_optab[] =
   { MN_vpcmpnleuw, 0x3e, 3, SPACE_0F3A, 6,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31061,8 +32628,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovb2m, 0x29, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31070,8 +32637,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovw2m, 0x29, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31079,8 +32646,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovm2b, 0x28, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31088,8 +32655,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovm2w, 0x28, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31097,8 +32664,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovswb, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31106,8 +32673,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovswb, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31115,8 +32682,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovswb, 0x20, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31124,8 +32691,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovuswb, 0x10, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31133,8 +32700,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovuswb, 0x10, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31142,8 +32709,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovuswb, 0x10, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31151,8 +32718,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovwb, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31160,8 +32727,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovwb, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31169,8 +32736,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovwb, 0x30, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31178,8 +32745,8 @@ static const insn_template i386_optab[] =
   { MN_vptestmb, 0x26, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31189,8 +32756,8 @@ static const insn_template i386_optab[] =
   { MN_vptestmw, 0x26, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31200,8 +32767,8 @@ static const insn_template i386_optab[] =
   { MN_vptestnmb, 0x26, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31211,8 +32778,8 @@ static const insn_template i386_optab[] =
   { MN_vptestnmw, 0x26, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31222,8 +32789,8 @@ static const insn_template i386_optab[] =
   { MN_kaddb, 0x4a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31233,8 +32800,8 @@ static const insn_template i386_optab[] =
   { MN_kaddw, 0x4a, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31244,8 +32811,8 @@ static const insn_template i386_optab[] =
   { MN_ktestb, 0x99, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31253,8 +32820,8 @@ static const insn_template i386_optab[] =
   { MN_ktestw, 0x99, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31262,8 +32829,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastf32x2, 0x19, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31271,8 +32838,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastf32x8, 0x1b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31280,8 +32847,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcasti32x2, 0x59, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31289,8 +32856,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcasti32x8, 0x5b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31298,8 +32865,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcastf64x2, 0x1a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31307,8 +32874,8 @@ static const insn_template i386_optab[] =
   { MN_vbroadcasti64x2, 0x5a, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31316,8 +32883,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2qq, 0x7b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31325,8 +32892,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2uqq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31334,8 +32901,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2qq, 0x7b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 1, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31343,8 +32910,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2qq, 0x7b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31352,8 +32919,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2qq, 0x7b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31361,8 +32928,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2uqq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 1, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31370,8 +32937,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2uqq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31379,8 +32946,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2uqq, 0x79, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31388,8 +32955,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2pd, 0xe6, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31397,8 +32964,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2pd, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31406,8 +32973,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2ps, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31415,8 +32982,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2ps, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31424,8 +32991,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2ps, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31433,8 +33000,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2psx, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31442,8 +33009,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2psy, 0x5b, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31451,8 +33018,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2qq, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31460,8 +33027,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttpd2uqq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31469,8 +33036,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2qq, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31478,8 +33045,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2qq, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31487,8 +33054,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2qq, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31496,8 +33063,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2uqq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31505,8 +33072,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2uqq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31514,8 +33081,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttps2uqq, 0x78, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31523,8 +33090,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2ps, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31532,8 +33099,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2ps, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31541,8 +33108,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2ps, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31550,8 +33117,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2psx, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31559,8 +33126,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2psy, 0x7a, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31568,8 +33135,8 @@ static const insn_template i386_optab[] =
   { MN_vextractf32x8, 0x1b, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31579,8 +33146,8 @@ static const insn_template i386_optab[] =
   { MN_vextracti32x8, 0x3b, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31590,8 +33157,8 @@ static const insn_template i386_optab[] =
   { MN_vinsertf32x8, 0x1a, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31603,8 +33170,8 @@ static const insn_template i386_optab[] =
   { MN_vinserti32x8, 0x3a, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31616,8 +33183,8 @@ static const insn_template i386_optab[] =
   { MN_vextractf64x2, 0x19, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31627,8 +33194,8 @@ static const insn_template i386_optab[] =
   { MN_vextracti64x2, 0x39, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31638,8 +33205,8 @@ static const insn_template i386_optab[] =
   { MN_vinsertf64x2, 0x18, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31651,8 +33218,8 @@ static const insn_template i386_optab[] =
   { MN_vinserti64x2, 0x38, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -31664,8 +33231,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassps, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31675,8 +33242,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassps, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31686,8 +33253,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspd, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31697,8 +33264,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspd, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31708,8 +33275,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspsz, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 0, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31719,8 +33286,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspdz, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 4, 0, 0, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31730,8 +33297,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspsx, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31741,8 +33308,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspdx, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31752,8 +33319,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspsy, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31763,8 +33330,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasspdy, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31774,8 +33341,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassss, 0x67, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 4, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31785,8 +33352,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasssd, 0x67, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 4, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31796,8 +33363,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclasssh, 0x67, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -31807,8 +33374,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovd2m, 0x39, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31816,8 +33383,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovq2m, 0x39, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31825,8 +33392,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovm2d, 0x38, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31834,8 +33401,8 @@ static const insn_template i386_optab[] =
   { MN_vpmovm2q, 0x38, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31843,8 +33410,8 @@ static const insn_template i386_optab[] =
   { MN_vpmullq, 0x40, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31854,8 +33421,8 @@ static const insn_template i386_optab[] =
   { MN_vrangeps, 0x50, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31867,8 +33434,8 @@ static const insn_template i386_optab[] =
   { MN_vrangepd, 0x50, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31880,8 +33447,8 @@ static const insn_template i386_optab[] =
   { MN_vrangess, 0x51, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31893,8 +33460,8 @@ static const insn_template i386_optab[] =
   { MN_vrangesd, 0x51, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31906,8 +33473,8 @@ static const insn_template i386_optab[] =
   { MN_vreduceps, 0x56, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31917,8 +33484,8 @@ static const insn_template i386_optab[] =
   { MN_vreducepd, 0x56, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31928,8 +33495,8 @@ static const insn_template i386_optab[] =
   { MN_vreduceph, 0x56, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -31939,8 +33506,8 @@ static const insn_template i386_optab[] =
   { MN_vreducess, 0x57, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -31952,8 +33519,8 @@ static const insn_template i386_optab[] =
   { MN_vreducesd, 0x57, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31965,8 +33532,8 @@ static const insn_template i386_optab[] =
   { MN_vreducesh, 0x57, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -31978,15 +33545,15 @@ static const insn_template i386_optab[] =
   { MN_clwb, 0xae, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vpmadd52huq, 0xb5, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31996,8 +33563,8 @@ static const insn_template i386_optab[] =
   { MN_vpmadd52huq, 0xb5, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32007,8 +33574,8 @@ static const insn_template i386_optab[] =
   { MN_vpmadd52luq, 0xb4, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32018,8 +33585,8 @@ static const insn_template i386_optab[] =
   { MN_vpmadd52luq, 0xb4, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32029,8 +33596,8 @@ static const insn_template i386_optab[] =
   { MN_vpmultishiftqb, 0x83, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32040,8 +33607,8 @@ static const insn_template i386_optab[] =
   { MN_v4fmaddps, 0x9a, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32051,8 +33618,8 @@ static const insn_template i386_optab[] =
   { MN_v4fnmaddps, 0xaa, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32062,8 +33629,8 @@ static const insn_template i386_optab[] =
   { MN_v4fmaddss, 0x9b, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32073,8 +33640,8 @@ static const insn_template i386_optab[] =
   { MN_v4fnmaddss, 0xab, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32084,8 +33651,8 @@ static const insn_template i386_optab[] =
   { MN_vp4dpwssd, 0x52, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32095,8 +33662,8 @@ static const insn_template i386_optab[] =
   { MN_vp4dpwssds, 0x53, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32106,8 +33673,8 @@ static const insn_template i386_optab[] =
   { MN_vpopcntd, 0x55, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32115,8 +33682,8 @@ static const insn_template i386_optab[] =
   { MN_vpopcntq, 0x55, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32124,8 +33691,8 @@ static const insn_template i386_optab[] =
   { MN_vpcompressb, 0x63, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32133,8 +33700,8 @@ static const insn_template i386_optab[] =
   { MN_vpcompressw, 0x63, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32142,8 +33709,8 @@ static const insn_template i386_optab[] =
   { MN_vpexpandb, 0x62, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32151,8 +33718,8 @@ static const insn_template i386_optab[] =
   { MN_vpexpandw, 0x62, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32160,8 +33727,8 @@ static const insn_template i386_optab[] =
   { MN_vpshldvd, 0x71, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32171,8 +33738,8 @@ static const insn_template i386_optab[] =
   { MN_vpshldvq, 0x71, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32182,8 +33749,8 @@ static const insn_template i386_optab[] =
   { MN_vpshldvw, 0x70, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32193,8 +33760,8 @@ static const insn_template i386_optab[] =
   { MN_vpshrdvd, 0x73, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32204,8 +33771,8 @@ static const insn_template i386_optab[] =
   { MN_vpshrdvq, 0x73, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32215,8 +33782,8 @@ static const insn_template i386_optab[] =
   { MN_vpshrdvw, 0x72, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32226,8 +33793,8 @@ static const insn_template i386_optab[] =
   { MN_vpshldd, 0x71, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -32239,8 +33806,8 @@ static const insn_template i386_optab[] =
   { MN_vpshldq, 0x71, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -32252,8 +33819,8 @@ static const insn_template i386_optab[] =
   { MN_vpshldw, 0x70, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32265,8 +33832,8 @@ static const insn_template i386_optab[] =
   { MN_vpshrdd, 0x73, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -32278,8 +33845,8 @@ static const insn_template i386_optab[] =
   { MN_vpshrdq, 0x73, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -32291,8 +33858,8 @@ static const insn_template i386_optab[] =
   { MN_vpshrdw, 0x72, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32304,8 +33871,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbusd, 0x50, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32315,8 +33882,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbusd, 0x50, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32326,8 +33893,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwssd, 0x52, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32337,8 +33904,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwssd, 0x52, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32348,8 +33915,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbusds, 0x51, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32359,8 +33926,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbusds, 0x51, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32370,8 +33937,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwssds, 0x53, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32381,8 +33948,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwssds, 0x53, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32392,8 +33959,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbuud, 0x50, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32403,8 +33970,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbuuds, 0x51, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32414,8 +33981,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbssd, 0x50, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32425,8 +33992,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbssds, 0x51, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32436,8 +34003,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbsud, 0x50, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32447,8 +34014,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpbsuds, 0x51, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32458,8 +34025,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwuud, 0xd2, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32469,8 +34036,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwuuds, 0xd3, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32480,8 +34047,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwusd, 0xd2, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32491,8 +34058,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwusds, 0xd3, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32502,8 +34069,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwsud, 0xd2, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32513,8 +34080,8 @@ static const insn_template i386_optab[] =
   { MN_vpdpwsuds, 0xd3, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32524,8 +34091,8 @@ static const insn_template i386_optab[] =
   { MN_vpopcntb, 0x54, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32533,8 +34100,8 @@ static const insn_template i386_optab[] =
   { MN_vpopcntw, 0x54, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32542,8 +34109,8 @@ static const insn_template i386_optab[] =
   { MN_vpshufbitqmb, 0x8f, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32553,15 +34120,15 @@ static const insn_template i386_optab[] =
   { MN_invlpgb, 0x01fe, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpgb, 0x01fe, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -32571,36 +34138,36 @@ static const insn_template i386_optab[] =
   { MN_tlbsync, 0x01ff, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clzero, 0x01fc, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clzero, 0x01fc, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_monitorx, 0x01fa, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_monitorx, 0x01fa, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -32610,8 +34177,8 @@ static const insn_template i386_optab[] =
   { MN_monitorx, 0x01fa, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 98, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 98, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -32621,15 +34188,15 @@ static const insn_template i386_optab[] =
   { MN_mwaitx, 0x01fb, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mwaitx, 0x01fb, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -32639,101 +34206,119 @@ static const insn_template i386_optab[] =
   { MN_rdpkru, 0x01ee, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrpkru, 0x01ef, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdpid, 0xc7, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdpid, 0xc7, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ptwrite, 0xae, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+      0, 0 },
+    { { 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ptwrite, 0xae, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_incsspd, 0xae, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_incsspq, 0xae, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdsspd, 0x1e, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdsspq, 0x1e, 1, SPACE_0F, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_saveprevssp, 0x01ea, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rstorssp, 0x01, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_wrssd, 0xf6, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_wrssd, 0x66, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_wrssq, 0xf6, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_wrssq, 0x66, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -32741,17 +34326,35 @@ static const insn_template i386_optab[] =
   { MN_wrussd, 0xf5, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_wrussd, 0x65, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_wrussq, 0xf5, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_wrussq, 0x65, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -32759,78 +34362,78 @@ static const insn_template i386_optab[] =
   { MN_setssbsy, 0x01e8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clrssbsy, 0xae, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_endbr64, 0x1efa, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_endbr32, 0x1efb, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_notrack, 0x3e, 0, SPACE_BASE, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wbnoinvd, 0x09, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pconfig, 0x01c5, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pbndkb, 0x01c7, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_umonitor, 0xae, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_tpause, 0xae, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_tpause, 0xae, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -32840,15 +34443,15 @@ static const insn_template i386_optab[] =
   { MN_umwait, 0xae, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_umwait, 0xae, 3, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -32858,33 +34461,51 @@ static const insn_template i386_optab[] =
   { MN_cldemote, 0x1c, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movdiri, 0xf9, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_movdiri, 0xf9, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_movdir64b, 0xf8, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
-      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_movdir64b, 0xf8, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vcvtne2ps2bf16, 0x72, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32894,8 +34515,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 3, 0, 0, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32903,8 +34524,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32912,8 +34533,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32921,8 +34542,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32930,8 +34551,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32939,8 +34560,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16x, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 3, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32948,8 +34569,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16x, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32957,8 +34578,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16y, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 3, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32966,8 +34587,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneps2bf16y, 0x72, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32975,8 +34596,8 @@ static const insn_template i386_optab[] =
   { MN_vdpbf16ps, 0x52, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32986,8 +34607,8 @@ static const insn_template i386_optab[] =
   { MN_vbcstnebf162ps, 0xb1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32995,8 +34616,8 @@ static const insn_template i386_optab[] =
   { MN_vbcstnesh2ps, 0xb1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33004,8 +34625,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneebf162ps, 0xb0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33013,8 +34634,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneeph2ps, 0xb0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33022,8 +34643,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneobf162ps, 0xb0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33031,8 +34652,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtneoph2ps, 0xb0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33040,26 +34661,44 @@ static const insn_template i386_optab[] =
   { MN_enqcmd, 0xf8, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_enqcmd, 0xf8, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_enqcmds, 0xf8, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_enqcmds, 0xf8, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vp2intersectd, 0x68, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 3, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33069,8 +34708,8 @@ static const insn_template i386_optab[] =
   { MN_vp2intersectq, 0x68, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 4, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33080,36 +34719,36 @@ static const insn_template i386_optab[] =
   { MN_mcommit, 0x01fa, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_psmash, 0x01ff, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_psmash, 0x01ff, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pvalidate, 0x01ff, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pvalidate, 0x01ff, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -33119,22 +34758,22 @@ static const insn_template i386_optab[] =
   { MN_pvalidate, 0x01ff, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpupdate, 0x01fe, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpupdate, 0x01fe, 2, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -33142,22 +34781,22 @@ static const insn_template i386_optab[] =
   { MN_rmpupdate, 0x01fe, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpadjust, 0x01fe, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpadjust, 0x01fe, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -33167,22 +34806,22 @@ static const insn_template i386_optab[] =
   { MN_rmpadjust, 0x01fe, 1, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpquery, 0x01fd, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 133, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 133, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpquery, 0x01fd, 3, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 133, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 133, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -33192,50 +34831,50 @@ static const insn_template i386_optab[] =
   { MN_rdpru, 0x01fd, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_serialize, 0x01e8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsusldtrk, 0x01e8, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xresldtrk, 0x01e9, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ldtilecfg, 0x49, 1, SPACE_0F38, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sttilecfg, 0x49, 1, SPACE_0F38, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 1, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_tcmmimfp16ps, 0x6c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 108, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 108, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33245,8 +34884,8 @@ static const insn_template i386_optab[] =
   { MN_tcmmrlfp16ps, 0x6c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 108, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 108, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33256,8 +34895,8 @@ static const insn_template i386_optab[] =
   { MN_tdpbf16ps, 0x5c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 106, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 106, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33267,8 +34906,8 @@ static const insn_template i386_optab[] =
   { MN_tdpfp16ps, 0x5c, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 107, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 107, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33278,8 +34917,8 @@ static const insn_template i386_optab[] =
   { MN_tdpbssd, 0x5e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33289,8 +34928,8 @@ static const insn_template i386_optab[] =
   { MN_tdpbuud, 0x5e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33300,8 +34939,8 @@ static const insn_template i386_optab[] =
   { MN_tdpbusd, 0x5e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33311,8 +34950,8 @@ static const insn_template i386_optab[] =
   { MN_tdpbsud, 0x5e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33321,27 +34960,27 @@ static const insn_template i386_optab[] =
 	  0, 0, 0, 1, 0, 0 } } } },
   { MN_tileloadd, 0x4b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 0, 1, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 1, 0, 1, 3, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } } } },
   { MN_tileloaddt1, 0x4b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 1, 0, 1, 1, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } } } },
   { MN_tilestored, 0x4b, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 1, 0, 1, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -33349,22 +34988,22 @@ static const insn_template i386_optab[] =
   { MN_tilerelease, 0x49c0, 0, SPACE_0F38, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_tilezero, 0x49, 1, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } } } },
   { MN_loadiwkey, 0xdc, 2, SPACE_0F38, None,
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33372,8 +35011,17 @@ static const insn_template i386_optab[] =
   { MN_encodekey128, 0xfa, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_encodekey128, 0xda, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 127, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -33381,8 +35029,17 @@ static const insn_template i386_optab[] =
   { MN_encodekey256, 0xfb, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_encodekey256, 0xdb, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 127, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -33390,142 +35047,206 @@ static const insn_template i386_optab[] =
   { MN_aesenc128kl, 0xdc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_aesenc128kl, 0xdc, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 127, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_aesdec128kl, 0xdd, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_aesdec128kl, 0xdd, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 127, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_aesenc256kl, 0xde, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_aesenc256kl, 0xde, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 127, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_aesdec256kl, 0xdf, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_aesdec256kl, 0xdf, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 127, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
   { MN_aesencwide128kl, 0xd8, 1, SPACE_0F38, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_aesencwide128kl, 0xd8, 1, SPACE_EVEXMAP4, 0,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesdecwide128kl, 0xd8, 1, SPACE_0F38, 1,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_aesdecwide128kl, 0xd8, 1, SPACE_EVEXMAP4, 1,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesencwide256kl, 0xd8, 1, SPACE_0F38, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_aesencwide256kl, 0xd8, 1, SPACE_EVEXMAP4, 2,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesdecwide256kl, 0xd8, 1, SPACE_0F38, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_aesdecwide256kl, 0xd8, 1, SPACE_EVEXMAP4, 3,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_tdcall, 0x01cc, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seamret, 0x01cd, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seamops, 0x01ce, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seamcall, 0x01cf, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 84, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_uiret, 0x01ec, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clui, 0x01ee, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stui, 0x01ef, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_testui, 0x01ed, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_senduipi, 0xc7, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_hreset, 0xf0c0, 1, SPACE_0F3A, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vfcmaddcph, 0x56, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33535,8 +35256,8 @@ static const insn_template i386_optab[] =
   { MN_vfcmaddcsh, 0x57, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33546,8 +35267,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddcph, 0x56, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33557,8 +35278,8 @@ static const insn_template i386_optab[] =
   { MN_vfmaddcsh, 0x57, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33568,8 +35289,8 @@ static const insn_template i386_optab[] =
   { MN_vfcmulcph, 0xd6, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33579,8 +35300,8 @@ static const insn_template i386_optab[] =
   { MN_vfcmulcsh, 0xd7, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33590,8 +35311,8 @@ static const insn_template i386_optab[] =
   { MN_vfmulcph, 0xd6, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33601,8 +35322,8 @@ static const insn_template i386_optab[] =
   { MN_vfmulcsh, 0xd7, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33612,8 +35333,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqph, 0xc2, 3, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33623,8 +35344,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqph, 0xc2, 3, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33634,8 +35355,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltph, 0xc2, 3, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33645,8 +35366,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_osph, 0xc2, 3, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33656,8 +35377,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpleph, 0xc2, 3, SPACE_0F3A, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33667,8 +35388,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_osph, 0xc2, 3, SPACE_0F3A, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33678,8 +35399,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordph, 0xc2, 3, SPACE_0F3A, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33689,8 +35410,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qph, 0xc2, 3, SPACE_0F3A, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33700,8 +35421,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqph, 0xc2, 3, SPACE_0F3A, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33711,8 +35432,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqph, 0xc2, 3, SPACE_0F3A, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33722,8 +35443,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltph, 0xc2, 3, SPACE_0F3A, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33733,8 +35454,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_usph, 0xc2, 3, SPACE_0F3A, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33744,8 +35465,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnleph, 0xc2, 3, SPACE_0F3A, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33755,8 +35476,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_usph, 0xc2, 3, SPACE_0F3A, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33766,8 +35487,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordph, 0xc2, 3, SPACE_0F3A, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33777,8 +35498,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qph, 0xc2, 3, SPACE_0F3A, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33788,8 +35509,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqph, 0xc2, 3, SPACE_0F3A, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33799,8 +35520,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngeph, 0xc2, 3, SPACE_0F3A, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33810,8 +35531,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_usph, 0xc2, 3, SPACE_0F3A, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33821,8 +35542,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtph, 0xc2, 3, SPACE_0F3A, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33832,8 +35553,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_usph, 0xc2, 3, SPACE_0F3A, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33843,8 +35564,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalseph, 0xc2, 3, SPACE_0F3A, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33854,8 +35575,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqph, 0xc2, 3, SPACE_0F3A, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33865,8 +35586,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqph, 0xc2, 3, SPACE_0F3A, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33876,8 +35597,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgeph, 0xc2, 3, SPACE_0F3A, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33887,8 +35608,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_osph, 0xc2, 3, SPACE_0F3A, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33898,8 +35619,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtph, 0xc2, 3, SPACE_0F3A, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33909,8 +35630,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_osph, 0xc2, 3, SPACE_0F3A, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33920,8 +35641,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrueph, 0xc2, 3, SPACE_0F3A, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33931,8 +35652,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqph, 0xc2, 3, SPACE_0F3A, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33942,8 +35663,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_osph, 0xc2, 3, SPACE_0F3A, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33953,8 +35674,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqph, 0xc2, 3, SPACE_0F3A, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33964,8 +35685,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqph, 0xc2, 3, SPACE_0F3A, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33975,8 +35696,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_sph, 0xc2, 3, SPACE_0F3A, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33986,8 +35707,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_usph, 0xc2, 3, SPACE_0F3A, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33997,8 +35718,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqph, 0xc2, 3, SPACE_0F3A, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34008,8 +35729,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqph, 0xc2, 3, SPACE_0F3A, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34019,8 +35740,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_sph, 0xc2, 3, SPACE_0F3A, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34030,8 +35751,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_usph, 0xc2, 3, SPACE_0F3A, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34041,8 +35762,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqph, 0xc2, 3, SPACE_0F3A, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34052,8 +35773,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqph, 0xc2, 3, SPACE_0F3A, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34063,8 +35784,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_osph, 0xc2, 3, SPACE_0F3A, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34074,8 +35795,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_osph, 0xc2, 3, SPACE_0F3A, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34085,8 +35806,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqph, 0xc2, 3, SPACE_0F3A, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34096,8 +35817,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqph, 0xc2, 3, SPACE_0F3A, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34107,8 +35828,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_usph, 0xc2, 3, SPACE_0F3A, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34118,8 +35839,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpph, 0xc2, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -34131,8 +35852,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeqsh, 0xc2, 3, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34142,8 +35863,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_oqsh, 0xc2, 3, SPACE_0F3A, 0x00,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34153,8 +35874,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpltsh, 0xc2, 3, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34164,8 +35885,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_ossh, 0xc2, 3, SPACE_0F3A, 0x01,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34175,8 +35896,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplesh, 0xc2, 3, SPACE_0F3A, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34186,8 +35907,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_ossh, 0xc2, 3, SPACE_0F3A, 0x02,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34197,8 +35918,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunordsh, 0xc2, 3, SPACE_0F3A, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34208,8 +35929,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_qsh, 0xc2, 3, SPACE_0F3A, 0x03,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34219,8 +35940,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneqsh, 0xc2, 3, SPACE_0F3A, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34230,8 +35951,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_uqsh, 0xc2, 3, SPACE_0F3A, 0x04,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34241,8 +35962,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnltsh, 0xc2, 3, SPACE_0F3A, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34252,8 +35973,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_ussh, 0xc2, 3, SPACE_0F3A, 0x05,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34263,8 +35984,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlesh, 0xc2, 3, SPACE_0F3A, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34274,8 +35995,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_ussh, 0xc2, 3, SPACE_0F3A, 0x06,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34285,8 +36006,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpordsh, 0xc2, 3, SPACE_0F3A, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34296,8 +36017,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_qsh, 0xc2, 3, SPACE_0F3A, 0x07,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34307,8 +36028,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_uqsh, 0xc2, 3, SPACE_0F3A, 0x08,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34318,8 +36039,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngesh, 0xc2, 3, SPACE_0F3A, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34329,8 +36050,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_ussh, 0xc2, 3, SPACE_0F3A, 0x09,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34340,8 +36061,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngtsh, 0xc2, 3, SPACE_0F3A, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34351,8 +36072,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_ussh, 0xc2, 3, SPACE_0F3A, 0x0a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34362,8 +36083,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalsesh, 0xc2, 3, SPACE_0F3A, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34373,8 +36094,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_oqsh, 0xc2, 3, SPACE_0F3A, 0x0b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34384,8 +36105,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_oqsh, 0xc2, 3, SPACE_0F3A, 0x0c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34395,8 +36116,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgesh, 0xc2, 3, SPACE_0F3A, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34406,8 +36127,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_ossh, 0xc2, 3, SPACE_0F3A, 0x0d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34417,8 +36138,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgtsh, 0xc2, 3, SPACE_0F3A, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34428,8 +36149,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_ossh, 0xc2, 3, SPACE_0F3A, 0x0e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34439,8 +36160,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptruesh, 0xc2, 3, SPACE_0F3A, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34450,8 +36171,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_uqsh, 0xc2, 3, SPACE_0F3A, 0x0f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34461,8 +36182,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ossh, 0xc2, 3, SPACE_0F3A, 0x10,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34472,8 +36193,8 @@ static const insn_template i386_optab[] =
   { MN_vcmplt_oqsh, 0xc2, 3, SPACE_0F3A, 0x11,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34483,8 +36204,8 @@ static const insn_template i386_optab[] =
   { MN_vcmple_oqsh, 0xc2, 3, SPACE_0F3A, 0x12,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34494,8 +36215,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpunord_ssh, 0xc2, 3, SPACE_0F3A, 0x13,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34505,8 +36226,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ussh, 0xc2, 3, SPACE_0F3A, 0x14,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34516,8 +36237,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnlt_uqsh, 0xc2, 3, SPACE_0F3A, 0x15,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34527,8 +36248,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnle_uqsh, 0xc2, 3, SPACE_0F3A, 0x16,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34538,8 +36259,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpord_ssh, 0xc2, 3, SPACE_0F3A, 0x17,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34549,8 +36270,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpeq_ussh, 0xc2, 3, SPACE_0F3A, 0x18,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34560,8 +36281,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpnge_uqsh, 0xc2, 3, SPACE_0F3A, 0x19,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34571,8 +36292,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpngt_uqsh, 0xc2, 3, SPACE_0F3A, 0x1a,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34582,8 +36303,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpfalse_ossh, 0xc2, 3, SPACE_0F3A, 0x1b,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34593,8 +36314,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpneq_ossh, 0xc2, 3, SPACE_0F3A, 0x1c,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34604,8 +36325,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpge_oqsh, 0xc2, 3, SPACE_0F3A, 0x1d,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34615,8 +36336,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpgt_oqsh, 0xc2, 3, SPACE_0F3A, 0x1e,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34626,8 +36347,8 @@ static const insn_template i386_optab[] =
   { MN_vcmptrue_ussh, 0xc2, 3, SPACE_0F3A, 0x1f,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34637,8 +36358,8 @@ static const insn_template i386_optab[] =
   { MN_vcmpsh, 0xc2, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -34650,8 +36371,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2ph, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 3, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34659,8 +36380,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2ph, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34668,8 +36389,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2ph, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34677,8 +36398,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2phx, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 3, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34686,8 +36407,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtdq2phy, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 3, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34695,8 +36416,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2ph, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 1, 3, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34704,8 +36425,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2ph, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34713,8 +36434,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2ph, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34722,8 +36443,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2phx, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 2, 1, 3, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34731,8 +36452,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtudq2phy, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 3, 1, 3, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34740,8 +36461,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2ph, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34749,8 +36470,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2ph, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34758,8 +36479,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2phz, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34767,8 +36488,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2phx, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34776,8 +36497,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtqq2phy, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34785,8 +36506,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2ph, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34794,8 +36515,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2ph, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34803,8 +36524,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2phz, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34812,8 +36533,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2phx, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34821,8 +36542,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuqq2phy, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 3, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34830,8 +36551,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2ph, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34839,8 +36560,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2ph, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 4, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34848,8 +36569,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2phz, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34857,8 +36578,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2phx, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34866,8 +36587,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtpd2phy, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34875,8 +36596,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2phx, 0x1d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 3, 1, 1, 6, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34884,8 +36605,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2phx, 0x1d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34893,8 +36614,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2phx, 0x1d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 3, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34902,8 +36623,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2phxx, 0x1d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 3, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34911,8 +36632,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtps2phxy, 0x1d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34920,8 +36641,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtw2ph, 0x7d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34929,8 +36650,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtuw2ph, 0x7d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34938,8 +36659,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2dq, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34947,8 +36668,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2dq, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34956,8 +36677,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2dq, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 2, 1, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34965,8 +36686,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2udq, 0x79, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34974,8 +36695,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2udq, 0x79, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34983,8 +36704,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2udq, 0x79, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2, 1, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34992,8 +36713,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2qq, 0x7b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35001,8 +36722,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2qq, 0x7b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35010,8 +36731,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2qq, 0x7b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 2, 1, 1, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35019,8 +36740,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2uqq, 0x79, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35028,8 +36749,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2uqq, 0x79, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35037,8 +36758,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2uqq, 0x79, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 2, 1, 1, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35046,8 +36767,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2pd, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35055,8 +36776,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2pd, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35064,8 +36785,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2pd, 0x5a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35073,8 +36794,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2w, 0x7d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35082,8 +36803,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2uw, 0x7d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35091,8 +36812,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsd2sh, 0x5a, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35102,8 +36823,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtss2sh, 0x1d, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35113,8 +36834,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sh, 0x2a, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35124,8 +36845,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsi2sh, 0x2a, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35135,8 +36856,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2sh, 0x7b, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35146,8 +36867,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtusi2sh, 0x7b, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35157,8 +36878,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsh2sd, 0x5a, 3, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35168,8 +36889,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsh2ss, 0x13, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35179,8 +36900,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtsh2si, 0x2d, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35188,8 +36909,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2dq, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35197,8 +36918,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2dq, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35206,8 +36927,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2dq, 0x5b, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 2, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35215,8 +36936,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2udq, 0x78, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35224,8 +36945,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2udq, 0x78, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35233,8 +36954,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2udq, 0x78, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35242,8 +36963,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2qq, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35251,8 +36972,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2qq, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35260,8 +36981,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2qq, 0x7a, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35269,8 +36990,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2uqq, 0x78, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35278,8 +36999,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2uqq, 0x78, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35287,8 +37008,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2uqq, 0x78, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35296,8 +37017,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2psx, 0x13, 2, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35305,8 +37026,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2psx, 0x13, 2, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35314,8 +37035,8 @@ static const insn_template i386_optab[] =
   { MN_vcvtph2psx, 0x13, 2, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 2, 0, 1, 5, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35323,8 +37044,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2w, 0x7c, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35332,8 +37053,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttph2uw, 0x7c, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35341,8 +37062,8 @@ static const insn_template i386_optab[] =
   { MN_vcvttsh2si, 0x2c, 2, SPACE_EVEXMAP5, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35350,8 +37071,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassph, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 0, 7, 0, 0, 0, 0, 1,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -35361,8 +37082,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassph, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 0, 7, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -35372,8 +37093,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassphz, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2, 0, 0, 6, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -35383,8 +37104,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassphx, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 2, 0, 0, 4, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -35394,8 +37115,8 @@ static const insn_template i386_optab[] =
   { MN_vfpclassphy, 0x66, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 5, 0, 0, 0, 1, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -35405,8 +37126,8 @@ static const insn_template i386_optab[] =
   { MN_vmovw, 0x6e, 2, SPACE_EVEXMAP5, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35414,8 +37135,8 @@ static const insn_template i386_optab[] =
   { MN_vmovw, 0x7e, 2, SPACE_EVEXMAP5, None,
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -35423,8 +37144,8 @@ static const insn_template i386_optab[] =
   { MN_vrcpph, 0x4c, 2, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 2, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35432,8 +37153,8 @@ static const insn_template i386_optab[] =
   { MN_vrcpsh, 0x4d, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35443,8 +37164,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrtph, 0x4e, 2, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 2, 0, 0, 7, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35452,8 +37173,8 @@ static const insn_template i386_optab[] =
   { MN_vrsqrtsh, 0x4f, 3, SPACE_EVEXMAP6, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-      0 },
-    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35463,264 +37184,528 @@ static const insn_template i386_optab[] =
   { MN_prefetchit0, 0x18, 1, SPACE_0F, 7,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 87, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 87, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetchit1, 0x18, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 87, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 87, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmpoxadd, 0xe0, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpoxadd, 0xe0, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnoxadd, 0xe1, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnoxadd, 0xe1, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpbxadd, 0xe2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpbxadd, 0xe2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpcxadd, 0xe2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpcxadd, 0xe2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnaexadd, 0xe2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnaexadd, 0xe2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnbxadd, 0xe3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnbxadd, 0xe3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpncxadd, 0xe3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpncxadd, 0xe3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpaexadd, 0xe3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpaexadd, 0xe3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpexadd, 0xe4, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpexadd, 0xe4, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpzxadd, 0xe4, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpzxadd, 0xe4, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnexadd, 0xe5, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnexadd, 0xe5, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnzxadd, 0xe5, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnzxadd, 0xe5, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpbexadd, 0xe6, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnoxadd, 0xe1, 3, SPACE_0F38, None,
+  { MN_cmpbexadd, 0xe6, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpbxadd, 0xe2, 3, SPACE_0F38, None,
+  { MN_cmpnaxadd, 0xe6, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpcxadd, 0xe2, 3, SPACE_0F38, None,
+  { MN_cmpnaxadd, 0xe6, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnaexadd, 0xe2, 3, SPACE_0F38, None,
+  { MN_cmpnbexadd, 0xe7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnbxadd, 0xe3, 3, SPACE_0F38, None,
+  { MN_cmpnbexadd, 0xe7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpncxadd, 0xe3, 3, SPACE_0F38, None,
+  { MN_cmpaxadd, 0xe7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpaexadd, 0xe3, 3, SPACE_0F38, None,
+  { MN_cmpaxadd, 0xe7, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpexadd, 0xe4, 3, SPACE_0F38, None,
+  { MN_cmpsxadd, 0xe8, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpzxadd, 0xe4, 3, SPACE_0F38, None,
+  { MN_cmpsxadd, 0xe8, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnexadd, 0xe5, 3, SPACE_0F38, None,
+  { MN_cmpnsxadd, 0xe9, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnzxadd, 0xe5, 3, SPACE_0F38, None,
+  { MN_cmpnsxadd, 0xe9, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpbexadd, 0xe6, 3, SPACE_0F38, None,
+  { MN_cmppxadd, 0xea, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnaxadd, 0xe6, 3, SPACE_0F38, None,
+  { MN_cmppxadd, 0xea, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnbexadd, 0xe7, 3, SPACE_0F38, None,
+  { MN_cmppexadd, 0xea, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpaxadd, 0xe7, 3, SPACE_0F38, None,
+  { MN_cmppexadd, 0xea, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpsxadd, 0xe8, 3, SPACE_0F38, None,
+  { MN_cmpnpxadd, 0xeb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnsxadd, 0xe9, 3, SPACE_0F38, None,
+  { MN_cmpnpxadd, 0xeb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmppxadd, 0xea, 3, SPACE_0F38, None,
+  { MN_cmppoxadd, 0xeb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmppexadd, 0xea, 3, SPACE_0F38, None,
+  { MN_cmppoxadd, 0xeb, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmpnpxadd, 0xeb, 3, SPACE_0F38, None,
+  { MN_cmplxadd, 0xec, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmppoxadd, 0xeb, 3, SPACE_0F38, None,
+  { MN_cmplxadd, 0xec, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
-  { MN_cmplxadd, 0xec, 3, SPACE_0F38, None,
+  { MN_cmpngexadd, 0xec, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35729,9 +37714,9 @@ static const insn_template i386_optab[] =
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_cmpngexadd, 0xec, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35741,8 +37726,19 @@ static const insn_template i386_optab[] =
   { MN_cmpnlxadd, 0xed, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnlxadd, 0xed, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35752,8 +37748,19 @@ static const insn_template i386_optab[] =
   { MN_cmpgexadd, 0xed, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpgexadd, 0xed, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35763,8 +37770,19 @@ static const insn_template i386_optab[] =
   { MN_cmplexadd, 0xee, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmplexadd, 0xee, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35774,8 +37792,19 @@ static const insn_template i386_optab[] =
   { MN_cmpngxadd, 0xee, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpngxadd, 0xee, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35785,8 +37814,19 @@ static const insn_template i386_optab[] =
   { MN_cmpnlexadd, 0xef, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpnlexadd, 0xef, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35796,8 +37836,19 @@ static const insn_template i386_optab[] =
   { MN_cmpgxadd, 0xef, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_cmpgxadd, 0xef, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -35807,86 +37858,122 @@ static const insn_template i386_optab[] =
   { MN_wrmsrns, 0x01c6, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdmsrlist, 0x01c6, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 93, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 93, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrmsrlist, 0x01c6, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 93, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 93, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aadd, 0xfc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_aadd, 0xfc, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aand, 0xfc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_aand, 0xfc, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aor, 0xfc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_aor, 0xfc, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_axor, 0xfc, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+      0, 1 },
+    { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
+  { MN_axor, 0xfc, 2, SPACE_EVEXMAP4, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lkgs, 0x00, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 97, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 97, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lkgs, 0x00, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 97, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 97, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_erets, 0x01ca, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_eretu, 0x01ca, 0, SPACE_0F, None,
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0 },
-    { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+      0, 0 },
+    { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
 };
@@ -35898,228 +37985,181 @@ static const insn_template *const i386_op_sets[] =
   i386_optab,
   i386_optab + 14,
   i386_optab + 16,
-  i386_optab + 17,
-  i386_optab + 18,
   i386_optab + 19,
   i386_optab + 20,
+  i386_optab + 21,
   i386_optab + 22,
-  i386_optab + 25,
-  i386_optab + 26,
+  i386_optab + 24,
   i386_optab + 27,
   i386_optab + 28,
-  i386_optab + 38,
-  i386_optab + 39,
-  i386_optab + 45,
-  i386_optab + 46,
+  i386_optab + 29,
+  i386_optab + 30,
+  i386_optab + 40,
+  i386_optab + 41,
+  i386_optab + 47,
   i386_optab + 48,
-  i386_optab + 52,
-  i386_optab + 56,
-  i386_optab + 57,
+  i386_optab + 50,
+  i386_optab + 54,
   i386_optab + 58,
   i386_optab + 59,
+  i386_optab + 60,
   i386_optab + 61,
   i386_optab + 63,
   i386_optab + 65,
-  i386_optab + 66,
   i386_optab + 67,
   i386_optab + 68,
   i386_optab + 69,
   i386_optab + 70,
+  i386_optab + 71,
   i386_optab + 72,
   i386_optab + 74,
   i386_optab + 76,
   i386_optab + 78,
-  i386_optab + 79,
   i386_optab + 80,
   i386_optab + 81,
-  i386_optab + 85,
-  i386_optab + 87,
-  i386_optab + 91,
+  i386_optab + 82,
+  i386_optab + 83,
+  i386_optab + 90,
   i386_optab + 93,
-  i386_optab + 97,
-  i386_optab + 101,
-  i386_optab + 104,
-  i386_optab + 108,
-  i386_optab + 112,
-  i386_optab + 116,
+  i386_optab + 100,
+  i386_optab + 103,
+  i386_optab + 113,
   i386_optab + 117,
-  i386_optab + 121,
-  i386_optab + 122,
-  i386_optab + 123,
-  i386_optab + 124,
-  i386_optab + 125,
-  i386_optab + 126,
+  i386_optab + 120,
   i386_optab + 127,
-  i386_optab + 129,
-  i386_optab + 131,
-  i386_optab + 132,
-  i386_optab + 133,
   i386_optab + 134,
-  i386_optab + 135,
-  i386_optab + 136,
-  i386_optab + 137,
-  i386_optab + 138,
-  i386_optab + 139,
-  i386_optab + 140,
   i386_optab + 141,
   i386_optab + 142,
-  i386_optab + 143,
-  i386_optab + 144,
-  i386_optab + 150,
   i386_optab + 152,
   i386_optab + 154,
+  i386_optab + 157,
   i386_optab + 158,
-  i386_optab + 162,
+  i386_optab + 159,
+  i386_optab + 160,
+  i386_optab + 161,
+  i386_optab + 163,
+  i386_optab + 165,
   i386_optab + 166,
+  i386_optab + 167,
+  i386_optab + 168,
+  i386_optab + 169,
   i386_optab + 170,
+  i386_optab + 171,
+  i386_optab + 172,
+  i386_optab + 173,
   i386_optab + 174,
+  i386_optab + 175,
+  i386_optab + 176,
+  i386_optab + 177,
   i386_optab + 178,
-  i386_optab + 182,
-  i386_optab + 186,
+  i386_optab + 185,
+  i386_optab + 187,
   i386_optab + 189,
-  i386_optab + 192,
-  i386_optab + 201,
-  i386_optab + 204,
-  i386_optab + 212,
-  i386_optab + 215,
-  i386_optab + 221,
-  i386_optab + 223,
-  i386_optab + 225,
-  i386_optab + 227,
+  i386_optab + 197,
+  i386_optab + 205,
+  i386_optab + 217,
   i386_optab + 229,
-  i386_optab + 230,
-  i386_optab + 231,
-  i386_optab + 232,
-  i386_optab + 233,
-  i386_optab + 234,
-  i386_optab + 235,
-  i386_optab + 236,
   i386_optab + 237,
-  i386_optab + 238,
-  i386_optab + 239,
-  i386_optab + 240,
-  i386_optab + 241,
-  i386_optab + 242,
-  i386_optab + 243,
-  i386_optab + 244,
   i386_optab + 245,
-  i386_optab + 246,
-  i386_optab + 247,
-  i386_optab + 248,
-  i386_optab + 249,
-  i386_optab + 250,
-  i386_optab + 251,
-  i386_optab + 252,
   i386_optab + 253,
-  i386_optab + 254,
-  i386_optab + 255,
-  i386_optab + 256,
-  i386_optab + 257,
-  i386_optab + 258,
-  i386_optab + 259,
-  i386_optab + 260,
   i386_optab + 261,
-  i386_optab + 262,
-  i386_optab + 264,
-  i386_optab + 266,
-  i386_optab + 268,
-  i386_optab + 270,
-  i386_optab + 272,
+  i386_optab + 267,
   i386_optab + 273,
-  i386_optab + 274,
-  i386_optab + 275,
-  i386_optab + 276,
-  i386_optab + 277,
-  i386_optab + 278,
-  i386_optab + 279,
-  i386_optab + 280,
-  i386_optab + 281,
   i386_optab + 282,
-  i386_optab + 283,
-  i386_optab + 284,
   i386_optab + 285,
-  i386_optab + 286,
-  i386_optab + 287,
-  i386_optab + 288,
-  i386_optab + 289,
-  i386_optab + 290,
-  i386_optab + 291,
-  i386_optab + 292,
   i386_optab + 293,
-  i386_optab + 294,
-  i386_optab + 295,
   i386_optab + 296,
-  i386_optab + 297,
-  i386_optab + 298,
-  i386_optab + 299,
-  i386_optab + 300,
-  i386_optab + 301,
   i386_optab + 302,
   i386_optab + 304,
   i386_optab + 306,
   i386_optab + 308,
   i386_optab + 310,
+  i386_optab + 311,
+  i386_optab + 312,
   i386_optab + 313,
+  i386_optab + 314,
+  i386_optab + 315,
   i386_optab + 316,
+  i386_optab + 317,
   i386_optab + 318,
+  i386_optab + 319,
   i386_optab + 320,
+  i386_optab + 321,
+  i386_optab + 322,
   i386_optab + 323,
+  i386_optab + 324,
+  i386_optab + 325,
   i386_optab + 326,
+  i386_optab + 327,
+  i386_optab + 328,
   i386_optab + 329,
+  i386_optab + 330,
+  i386_optab + 331,
   i386_optab + 332,
+  i386_optab + 333,
   i386_optab + 334,
   i386_optab + 335,
   i386_optab + 336,
+  i386_optab + 337,
   i386_optab + 338,
+  i386_optab + 339,
   i386_optab + 340,
+  i386_optab + 341,
   i386_optab + 342,
-  i386_optab + 344,
+  i386_optab + 343,
   i386_optab + 345,
-  i386_optab + 346,
   i386_optab + 347,
-  i386_optab + 348,
   i386_optab + 349,
-  i386_optab + 350,
   i386_optab + 351,
-  i386_optab + 352,
+  i386_optab + 353,
   i386_optab + 354,
+  i386_optab + 355,
   i386_optab + 356,
+  i386_optab + 357,
   i386_optab + 358,
+  i386_optab + 359,
   i386_optab + 360,
+  i386_optab + 361,
   i386_optab + 362,
+  i386_optab + 363,
   i386_optab + 364,
   i386_optab + 365,
+  i386_optab + 366,
   i386_optab + 367,
+  i386_optab + 368,
   i386_optab + 369,
+  i386_optab + 370,
   i386_optab + 371,
+  i386_optab + 372,
   i386_optab + 373,
+  i386_optab + 374,
   i386_optab + 375,
+  i386_optab + 376,
   i386_optab + 377,
+  i386_optab + 378,
   i386_optab + 379,
+  i386_optab + 380,
   i386_optab + 381,
+  i386_optab + 382,
   i386_optab + 383,
+  i386_optab + 385,
   i386_optab + 387,
   i386_optab + 389,
-  i386_optab + 390,
   i386_optab + 391,
-  i386_optab + 392,
-  i386_optab + 395,
-  i386_optab + 396,
-  i386_optab + 400,
-  i386_optab + 402,
-  i386_optab + 403,
+  i386_optab + 394,
+  i386_optab + 397,
+  i386_optab + 399,
+  i386_optab + 401,
   i386_optab + 404,
-  i386_optab + 405,
   i386_optab + 407,
-  i386_optab + 411,
-  i386_optab + 412,
+  i386_optab + 410,
+  i386_optab + 413,
+  i386_optab + 415,
   i386_optab + 416,
   i386_optab + 417,
-  i386_optab + 418,
-  i386_optab + 420,
-  i386_optab + 422,
+  i386_optab + 419,
+  i386_optab + 421,
   i386_optab + 423,
-  i386_optab + 424,
   i386_optab + 425,
   i386_optab + 426,
   i386_optab + 427,
@@ -36128,30 +38168,42 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 430,
   i386_optab + 431,
   i386_optab + 432,
-  i386_optab + 436,
+  i386_optab + 433,
+  i386_optab + 435,
   i386_optab + 437,
-  i386_optab + 440,
+  i386_optab + 439,
+  i386_optab + 441,
+  i386_optab + 443,
   i386_optab + 445,
   i386_optab + 446,
+  i386_optab + 448,
+  i386_optab + 450,
   i386_optab + 452,
-  i386_optab + 457,
+  i386_optab + 454,
+  i386_optab + 456,
   i386_optab + 458,
+  i386_optab + 460,
+  i386_optab + 462,
   i386_optab + 464,
   i386_optab + 468,
-  i386_optab + 469,
+  i386_optab + 470,
+  i386_optab + 471,
   i386_optab + 472,
+  i386_optab + 473,
+  i386_optab + 476,
   i386_optab + 477,
-  i386_optab + 478,
+  i386_optab + 481,
+  i386_optab + 483,
   i386_optab + 484,
-  i386_optab + 489,
-  i386_optab + 490,
-  i386_optab + 496,
+  i386_optab + 485,
+  i386_optab + 486,
+  i386_optab + 488,
+  i386_optab + 492,
+  i386_optab + 493,
   i386_optab + 497,
   i386_optab + 498,
   i386_optab + 499,
-  i386_optab + 500,
   i386_optab + 501,
-  i386_optab + 502,
   i386_optab + 503,
   i386_optab + 504,
   i386_optab + 505,
@@ -36163,65 +38215,23 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 511,
   i386_optab + 512,
   i386_optab + 513,
-  i386_optab + 514,
-  i386_optab + 515,
-  i386_optab + 516,
   i386_optab + 517,
   i386_optab + 518,
-  i386_optab + 519,
-  i386_optab + 522,
-  i386_optab + 525,
+  i386_optab + 521,
   i386_optab + 526,
   i386_optab + 527,
-  i386_optab + 528,
-  i386_optab + 529,
-  i386_optab + 530,
-  i386_optab + 531,
-  i386_optab + 532,
   i386_optab + 533,
-  i386_optab + 534,
-  i386_optab + 535,
-  i386_optab + 536,
-  i386_optab + 537,
   i386_optab + 538,
   i386_optab + 539,
-  i386_optab + 540,
-  i386_optab + 541,
-  i386_optab + 542,
-  i386_optab + 543,
-  i386_optab + 544,
   i386_optab + 545,
-  i386_optab + 546,
-  i386_optab + 547,
-  i386_optab + 548,
   i386_optab + 549,
   i386_optab + 550,
-  i386_optab + 551,
-  i386_optab + 552,
   i386_optab + 553,
-  i386_optab + 554,
-  i386_optab + 555,
-  i386_optab + 556,
-  i386_optab + 557,
   i386_optab + 558,
   i386_optab + 559,
-  i386_optab + 560,
-  i386_optab + 561,
-  i386_optab + 562,
-  i386_optab + 563,
-  i386_optab + 564,
   i386_optab + 565,
-  i386_optab + 566,
-  i386_optab + 567,
-  i386_optab + 568,
-  i386_optab + 569,
   i386_optab + 570,
   i386_optab + 571,
-  i386_optab + 572,
-  i386_optab + 573,
-  i386_optab + 574,
-  i386_optab + 575,
-  i386_optab + 576,
   i386_optab + 577,
   i386_optab + 578,
   i386_optab + 579,
@@ -36246,11 +38256,7 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 598,
   i386_optab + 599,
   i386_optab + 600,
-  i386_optab + 601,
-  i386_optab + 602,
   i386_optab + 603,
-  i386_optab + 604,
-  i386_optab + 605,
   i386_optab + 606,
   i386_optab + 607,
   i386_optab + 608,
@@ -36266,7 +38272,9 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 618,
   i386_optab + 619,
   i386_optab + 620,
+  i386_optab + 621,
   i386_optab + 622,
+  i386_optab + 623,
   i386_optab + 624,
   i386_optab + 625,
   i386_optab + 626,
@@ -36320,11 +38328,23 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 674,
   i386_optab + 675,
   i386_optab + 676,
+  i386_optab + 677,
+  i386_optab + 678,
   i386_optab + 679,
+  i386_optab + 680,
+  i386_optab + 681,
   i386_optab + 682,
+  i386_optab + 683,
+  i386_optab + 684,
   i386_optab + 685,
+  i386_optab + 686,
+  i386_optab + 687,
   i386_optab + 688,
+  i386_optab + 689,
+  i386_optab + 690,
   i386_optab + 691,
+  i386_optab + 692,
+  i386_optab + 693,
   i386_optab + 694,
   i386_optab + 695,
   i386_optab + 696,
@@ -36332,135 +38352,154 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 698,
   i386_optab + 699,
   i386_optab + 700,
+  i386_optab + 701,
+  i386_optab + 702,
+  i386_optab + 704,
   i386_optab + 706,
+  i386_optab + 707,
+  i386_optab + 708,
+  i386_optab + 709,
+  i386_optab + 710,
+  i386_optab + 711,
+  i386_optab + 712,
+  i386_optab + 713,
   i386_optab + 714,
-  i386_optab + 717,
+  i386_optab + 715,
+  i386_optab + 716,
+  i386_optab + 718,
   i386_optab + 720,
-  i386_optab + 723,
+  i386_optab + 722,
+  i386_optab + 724,
   i386_optab + 726,
-  i386_optab + 729,
+  i386_optab + 728,
+  i386_optab + 730,
   i386_optab + 732,
-  i386_optab + 735,
+  i386_optab + 734,
+  i386_optab + 736,
   i386_optab + 738,
-  i386_optab + 741,
+  i386_optab + 740,
+  i386_optab + 742,
   i386_optab + 744,
-  i386_optab + 747,
+  i386_optab + 746,
+  i386_optab + 748,
   i386_optab + 750,
-  i386_optab + 753,
+  i386_optab + 752,
+  i386_optab + 754,
   i386_optab + 756,
-  i386_optab + 759,
+  i386_optab + 758,
+  i386_optab + 760,
   i386_optab + 762,
-  i386_optab + 765,
+  i386_optab + 764,
+  i386_optab + 766,
   i386_optab + 768,
-  i386_optab + 771,
+  i386_optab + 770,
+  i386_optab + 772,
   i386_optab + 774,
+  i386_optab + 776,
   i386_optab + 777,
+  i386_optab + 778,
+  i386_optab + 779,
   i386_optab + 780,
+  i386_optab + 781,
+  i386_optab + 782,
   i386_optab + 783,
-  i386_optab + 789,
-  i386_optab + 795,
-  i386_optab + 801,
+  i386_optab + 784,
+  i386_optab + 785,
+  i386_optab + 786,
+  i386_optab + 787,
+  i386_optab + 788,
+  i386_optab + 791,
+  i386_optab + 794,
+  i386_optab + 797,
+  i386_optab + 800,
+  i386_optab + 803,
+  i386_optab + 806,
   i386_optab + 807,
-  i386_optab + 813,
-  i386_optab + 819,
-  i386_optab + 825,
-  i386_optab + 831,
-  i386_optab + 834,
-  i386_optab + 837,
-  i386_optab + 840,
-  i386_optab + 843,
-  i386_optab + 846,
-  i386_optab + 849,
-  i386_optab + 852,
-  i386_optab + 855,
-  i386_optab + 858,
-  i386_optab + 861,
-  i386_optab + 864,
-  i386_optab + 867,
-  i386_optab + 870,
-  i386_optab + 873,
-  i386_optab + 876,
-  i386_optab + 878,
+  i386_optab + 808,
+  i386_optab + 809,
+  i386_optab + 810,
+  i386_optab + 811,
+  i386_optab + 812,
+  i386_optab + 818,
+  i386_optab + 826,
+  i386_optab + 829,
+  i386_optab + 832,
+  i386_optab + 835,
+  i386_optab + 838,
+  i386_optab + 841,
+  i386_optab + 844,
+  i386_optab + 847,
+  i386_optab + 850,
+  i386_optab + 853,
+  i386_optab + 856,
+  i386_optab + 859,
+  i386_optab + 862,
+  i386_optab + 865,
+  i386_optab + 868,
+  i386_optab + 871,
+  i386_optab + 874,
+  i386_optab + 877,
   i386_optab + 880,
-  i386_optab + 882,
-  i386_optab + 884,
+  i386_optab + 883,
   i386_optab + 886,
-  i386_optab + 888,
-  i386_optab + 890,
+  i386_optab + 889,
   i386_optab + 892,
-  i386_optab + 894,
-  i386_optab + 896,
-  i386_optab + 898,
-  i386_optab + 900,
-  i386_optab + 902,
-  i386_optab + 904,
-  i386_optab + 906,
-  i386_optab + 908,
-  i386_optab + 910,
-  i386_optab + 912,
-  i386_optab + 914,
-  i386_optab + 916,
-  i386_optab + 918,
-  i386_optab + 920,
-  i386_optab + 922,
-  i386_optab + 923,
-  i386_optab + 924,
-  i386_optab + 930,
-  i386_optab + 932,
-  i386_optab + 933,
-  i386_optab + 935,
+  i386_optab + 895,
+  i386_optab + 901,
+  i386_optab + 907,
+  i386_optab + 913,
+  i386_optab + 919,
+  i386_optab + 925,
+  i386_optab + 931,
   i386_optab + 937,
-  i386_optab + 939,
-  i386_optab + 941,
-  i386_optab + 942,
-  i386_optab + 944,
+  i386_optab + 943,
   i386_optab + 946,
-  i386_optab + 948,
-  i386_optab + 950,
+  i386_optab + 949,
   i386_optab + 952,
-  i386_optab + 954,
-  i386_optab + 957,
-  i386_optab + 959,
-  i386_optab + 962,
+  i386_optab + 955,
+  i386_optab + 958,
+  i386_optab + 961,
   i386_optab + 964,
-  i386_optab + 966,
   i386_optab + 967,
-  i386_optab + 969,
-  i386_optab + 972,
-  i386_optab + 974,
+  i386_optab + 970,
+  i386_optab + 973,
   i386_optab + 976,
-  i386_optab + 978,
-  i386_optab + 980,
-  i386_optab + 983,
-  i386_optab + 986,
-  i386_optab + 993,
-  i386_optab + 999,
+  i386_optab + 979,
+  i386_optab + 982,
+  i386_optab + 985,
+  i386_optab + 988,
+  i386_optab + 990,
+  i386_optab + 992,
+  i386_optab + 994,
+  i386_optab + 996,
+  i386_optab + 998,
+  i386_optab + 1000,
   i386_optab + 1002,
-  i386_optab + 1005,
+  i386_optab + 1004,
+  i386_optab + 1006,
   i386_optab + 1008,
-  i386_optab + 1011,
+  i386_optab + 1010,
+  i386_optab + 1012,
   i386_optab + 1014,
-  i386_optab + 1017,
+  i386_optab + 1016,
   i386_optab + 1018,
-  i386_optab + 1019,
   i386_optab + 1020,
-  i386_optab + 1021,
+  i386_optab + 1022,
   i386_optab + 1024,
-  i386_optab + 1025,
-  i386_optab + 1027,
-  i386_optab + 1029,
-  i386_optab + 1031,
-  i386_optab + 1033,
+  i386_optab + 1026,
+  i386_optab + 1028,
+  i386_optab + 1030,
+  i386_optab + 1032,
   i386_optab + 1034,
+  i386_optab + 1035,
   i386_optab + 1036,
-  i386_optab + 1038,
-  i386_optab + 1040,
   i386_optab + 1042,
   i386_optab + 1044,
-  i386_optab + 1046,
-  i386_optab + 1048,
-  i386_optab + 1050,
-  i386_optab + 1052,
+  i386_optab + 1045,
+  i386_optab + 1047,
+  i386_optab + 1049,
+  i386_optab + 1051,
+  i386_optab + 1053,
   i386_optab + 1054,
   i386_optab + 1056,
   i386_optab + 1058,
@@ -36468,41 +38507,38 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 1062,
   i386_optab + 1064,
   i386_optab + 1066,
-  i386_optab + 1068,
-  i386_optab + 1070,
-  i386_optab + 1072,
+  i386_optab + 1069,
+  i386_optab + 1071,
   i386_optab + 1074,
   i386_optab + 1076,
   i386_optab + 1078,
-  i386_optab + 1080,
-  i386_optab + 1082,
+  i386_optab + 1079,
+  i386_optab + 1081,
   i386_optab + 1084,
   i386_optab + 1086,
   i386_optab + 1088,
   i386_optab + 1090,
   i386_optab + 1092,
-  i386_optab + 1094,
-  i386_optab + 1096,
+  i386_optab + 1095,
   i386_optab + 1098,
-  i386_optab + 1100,
-  i386_optab + 1103,
-  i386_optab + 1109,
+  i386_optab + 1105,
   i386_optab + 1111,
-  i386_optab + 1113,
-  i386_optab + 1115,
+  i386_optab + 1114,
   i386_optab + 1117,
-  i386_optab + 1119,
-  i386_optab + 1121,
+  i386_optab + 1120,
   i386_optab + 1123,
   i386_optab + 1126,
   i386_optab + 1129,
+  i386_optab + 1130,
   i386_optab + 1131,
+  i386_optab + 1132,
   i386_optab + 1133,
   i386_optab + 1136,
-  i386_optab + 1138,
-  i386_optab + 1140,
-  i386_optab + 1142,
-  i386_optab + 1144,
+  i386_optab + 1137,
+  i386_optab + 1139,
+  i386_optab + 1141,
+  i386_optab + 1143,
+  i386_optab + 1145,
   i386_optab + 1146,
   i386_optab + 1148,
   i386_optab + 1150,
@@ -36515,13 +38551,12 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 1164,
   i386_optab + 1166,
   i386_optab + 1168,
-  i386_optab + 1169,
-  i386_optab + 1171,
-  i386_optab + 1173,
-  i386_optab + 1175,
-  i386_optab + 1177,
-  i386_optab + 1179,
-  i386_optab + 1181,
+  i386_optab + 1170,
+  i386_optab + 1172,
+  i386_optab + 1174,
+  i386_optab + 1176,
+  i386_optab + 1178,
+  i386_optab + 1180,
   i386_optab + 1182,
   i386_optab + 1184,
   i386_optab + 1186,
@@ -36529,19 +38564,16 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 1190,
   i386_optab + 1192,
   i386_optab + 1194,
-  i386_optab + 1195,
   i386_optab + 1196,
-  i386_optab + 1199,
-  i386_optab + 1201,
-  i386_optab + 1203,
-  i386_optab + 1205,
-  i386_optab + 1207,
-  i386_optab + 1209,
-  i386_optab + 1211,
-  i386_optab + 1213,
+  i386_optab + 1198,
+  i386_optab + 1200,
+  i386_optab + 1202,
+  i386_optab + 1204,
+  i386_optab + 1206,
+  i386_optab + 1208,
+  i386_optab + 1210,
+  i386_optab + 1212,
   i386_optab + 1215,
-  i386_optab + 1217,
-  i386_optab + 1219,
   i386_optab + 1221,
   i386_optab + 1223,
   i386_optab + 1225,
@@ -36550,340 +38582,348 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 1231,
   i386_optab + 1233,
   i386_optab + 1235,
-  i386_optab + 1236,
-  i386_optab + 1237,
-  i386_optab + 1240,
-  i386_optab + 1242,
+  i386_optab + 1238,
+  i386_optab + 1241,
   i386_optab + 1243,
-  i386_optab + 1244,
   i386_optab + 1245,
-  i386_optab + 1246,
-  i386_optab + 1247,
   i386_optab + 1248,
   i386_optab + 1250,
   i386_optab + 1252,
-  i386_optab + 1253,
   i386_optab + 1254,
-  i386_optab + 1255,
   i386_optab + 1256,
   i386_optab + 1258,
   i386_optab + 1260,
   i386_optab + 1262,
-  i386_optab + 1265,
+  i386_optab + 1264,
+  i386_optab + 1266,
   i386_optab + 1268,
-  i386_optab + 1271,
+  i386_optab + 1270,
+  i386_optab + 1272,
   i386_optab + 1274,
-  i386_optab + 1277,
+  i386_optab + 1276,
+  i386_optab + 1278,
   i386_optab + 1280,
+  i386_optab + 1281,
   i386_optab + 1283,
-  i386_optab + 1286,
+  i386_optab + 1285,
+  i386_optab + 1287,
   i386_optab + 1289,
-  i386_optab + 1292,
-  i386_optab + 1295,
+  i386_optab + 1291,
+  i386_optab + 1293,
+  i386_optab + 1294,
+  i386_optab + 1296,
   i386_optab + 1298,
-  i386_optab + 1301,
+  i386_optab + 1300,
+  i386_optab + 1302,
   i386_optab + 1304,
+  i386_optab + 1306,
   i386_optab + 1307,
-  i386_optab + 1310,
-  i386_optab + 1312,
-  i386_optab + 1314,
-  i386_optab + 1318,
-  i386_optab + 1322,
-  i386_optab + 1324,
-  i386_optab + 1326,
-  i386_optab + 1330,
-  i386_optab + 1332,
-  i386_optab + 1334,
-  i386_optab + 1336,
-  i386_optab + 1338,
-  i386_optab + 1342,
-  i386_optab + 1344,
-  i386_optab + 1346,
-  i386_optab + 1350,
+  i386_optab + 1308,
+  i386_optab + 1311,
+  i386_optab + 1313,
+  i386_optab + 1315,
+  i386_optab + 1317,
+  i386_optab + 1319,
+  i386_optab + 1321,
+  i386_optab + 1323,
+  i386_optab + 1325,
+  i386_optab + 1327,
+  i386_optab + 1329,
+  i386_optab + 1331,
+  i386_optab + 1333,
+  i386_optab + 1335,
+  i386_optab + 1337,
+  i386_optab + 1339,
+  i386_optab + 1341,
+  i386_optab + 1343,
+  i386_optab + 1345,
+  i386_optab + 1347,
+  i386_optab + 1348,
+  i386_optab + 1349,
   i386_optab + 1352,
   i386_optab + 1354,
+  i386_optab + 1355,
   i386_optab + 1356,
+  i386_optab + 1357,
+  i386_optab + 1358,
+  i386_optab + 1359,
   i386_optab + 1360,
   i386_optab + 1362,
   i386_optab + 1364,
+  i386_optab + 1365,
   i386_optab + 1366,
+  i386_optab + 1367,
   i386_optab + 1368,
-  i386_optab + 1370,
-  i386_optab + 1372,
+  i386_optab + 1371,
   i386_optab + 1374,
-  i386_optab + 1376,
-  i386_optab + 1378,
+  i386_optab + 1377,
   i386_optab + 1380,
-  i386_optab + 1382,
-  i386_optab + 1384,
+  i386_optab + 1383,
   i386_optab + 1386,
-  i386_optab + 1388,
-  i386_optab + 1390,
+  i386_optab + 1389,
   i386_optab + 1392,
-  i386_optab + 1394,
-  i386_optab + 1396,
+  i386_optab + 1395,
   i386_optab + 1398,
-  i386_optab + 1400,
-  i386_optab + 1402,
+  i386_optab + 1401,
   i386_optab + 1404,
-  i386_optab + 1406,
-  i386_optab + 1408,
+  i386_optab + 1407,
   i386_optab + 1410,
-  i386_optab + 1412,
-  i386_optab + 1414,
+  i386_optab + 1413,
   i386_optab + 1416,
-  i386_optab + 1418,
-  i386_optab + 1420,
-  i386_optab + 1424,
-  i386_optab + 1428,
-  i386_optab + 1430,
-  i386_optab + 1432,
-  i386_optab + 1434,
-  i386_optab + 1435,
-  i386_optab + 1436,
+  i386_optab + 1419,
+  i386_optab + 1422,
+  i386_optab + 1425,
+  i386_optab + 1427,
+  i386_optab + 1429,
+  i386_optab + 1433,
   i386_optab + 1437,
-  i386_optab + 1438,
   i386_optab + 1439,
-  i386_optab + 1440,
   i386_optab + 1441,
-  i386_optab + 1442,
-  i386_optab + 1444,
-  i386_optab + 1446,
-  i386_optab + 1448,
-  i386_optab + 1450,
-  i386_optab + 1452,
-  i386_optab + 1454,
-  i386_optab + 1456,
-  i386_optab + 1458,
-  i386_optab + 1460,
-  i386_optab + 1462,
-  i386_optab + 1464,
-  i386_optab + 1466,
-  i386_optab + 1468,
-  i386_optab + 1470,
-  i386_optab + 1472,
-  i386_optab + 1474,
-  i386_optab + 1476,
-  i386_optab + 1478,
+  i386_optab + 1445,
+  i386_optab + 1447,
+  i386_optab + 1449,
+  i386_optab + 1451,
+  i386_optab + 1453,
+  i386_optab + 1457,
+  i386_optab + 1459,
+  i386_optab + 1461,
+  i386_optab + 1465,
+  i386_optab + 1467,
+  i386_optab + 1469,
+  i386_optab + 1471,
+  i386_optab + 1475,
+  i386_optab + 1477,
   i386_optab + 1479,
-  i386_optab + 1480,
-  i386_optab + 1482,
-  i386_optab + 1484,
-  i386_optab + 1486,
-  i386_optab + 1488,
+  i386_optab + 1481,
+  i386_optab + 1483,
+  i386_optab + 1485,
+  i386_optab + 1487,
   i386_optab + 1489,
-  i386_optab + 1490,
   i386_optab + 1491,
-  i386_optab + 1492,
   i386_optab + 1493,
-  i386_optab + 1496,
-  i386_optab + 1498,
-  i386_optab + 1500,
-  i386_optab + 1502,
-  i386_optab + 1504,
-  i386_optab + 1506,
-  i386_optab + 1508,
-  i386_optab + 1510,
-  i386_optab + 1512,
-  i386_optab + 1514,
-  i386_optab + 1516,
-  i386_optab + 1518,
-  i386_optab + 1520,
-  i386_optab + 1522,
-  i386_optab + 1524,
-  i386_optab + 1526,
-  i386_optab + 1528,
-  i386_optab + 1530,
-  i386_optab + 1532,
-  i386_optab + 1534,
-  i386_optab + 1536,
-  i386_optab + 1538,
-  i386_optab + 1540,
-  i386_optab + 1542,
-  i386_optab + 1544,
-  i386_optab + 1546,
-  i386_optab + 1548,
-  i386_optab + 1550,
+  i386_optab + 1495,
+  i386_optab + 1497,
+  i386_optab + 1499,
+  i386_optab + 1501,
+  i386_optab + 1503,
+  i386_optab + 1505,
+  i386_optab + 1507,
+  i386_optab + 1509,
+  i386_optab + 1511,
+  i386_optab + 1513,
+  i386_optab + 1515,
+  i386_optab + 1517,
+  i386_optab + 1519,
+  i386_optab + 1521,
+  i386_optab + 1523,
+  i386_optab + 1525,
+  i386_optab + 1527,
+  i386_optab + 1529,
+  i386_optab + 1531,
+  i386_optab + 1533,
+  i386_optab + 1535,
+  i386_optab + 1539,
+  i386_optab + 1543,
+  i386_optab + 1545,
+  i386_optab + 1547,
+  i386_optab + 1551,
   i386_optab + 1552,
+  i386_optab + 1553,
   i386_optab + 1554,
+  i386_optab + 1555,
   i386_optab + 1556,
+  i386_optab + 1557,
   i386_optab + 1558,
-  i386_optab + 1560,
-  i386_optab + 1562,
-  i386_optab + 1564,
-  i386_optab + 1566,
-  i386_optab + 1568,
-  i386_optab + 1570,
-  i386_optab + 1572,
-  i386_optab + 1574,
-  i386_optab + 1576,
-  i386_optab + 1578,
-  i386_optab + 1580,
-  i386_optab + 1582,
-  i386_optab + 1584,
-  i386_optab + 1586,
-  i386_optab + 1588,
-  i386_optab + 1590,
-  i386_optab + 1592,
-  i386_optab + 1594,
+  i386_optab + 1559,
+  i386_optab + 1561,
+  i386_optab + 1563,
+  i386_optab + 1565,
+  i386_optab + 1567,
+  i386_optab + 1569,
+  i386_optab + 1571,
+  i386_optab + 1573,
+  i386_optab + 1575,
+  i386_optab + 1577,
+  i386_optab + 1579,
+  i386_optab + 1581,
+  i386_optab + 1583,
+  i386_optab + 1585,
+  i386_optab + 1587,
+  i386_optab + 1589,
+  i386_optab + 1591,
+  i386_optab + 1593,
+  i386_optab + 1595,
   i386_optab + 1596,
-  i386_optab + 1598,
-  i386_optab + 1600,
-  i386_optab + 1602,
-  i386_optab + 1604,
+  i386_optab + 1597,
+  i386_optab + 1599,
+  i386_optab + 1601,
+  i386_optab + 1603,
+  i386_optab + 1605,
   i386_optab + 1606,
+  i386_optab + 1607,
   i386_optab + 1608,
+  i386_optab + 1609,
   i386_optab + 1610,
-  i386_optab + 1612,
-  i386_optab + 1614,
-  i386_optab + 1616,
-  i386_optab + 1618,
-  i386_optab + 1620,
-  i386_optab + 1622,
-  i386_optab + 1624,
-  i386_optab + 1626,
-  i386_optab + 1628,
-  i386_optab + 1630,
-  i386_optab + 1632,
-  i386_optab + 1634,
-  i386_optab + 1636,
-  i386_optab + 1638,
-  i386_optab + 1640,
-  i386_optab + 1642,
-  i386_optab + 1644,
-  i386_optab + 1646,
-  i386_optab + 1648,
-  i386_optab + 1650,
-  i386_optab + 1652,
-  i386_optab + 1654,
-  i386_optab + 1656,
-  i386_optab + 1658,
-  i386_optab + 1660,
-  i386_optab + 1662,
-  i386_optab + 1664,
-  i386_optab + 1666,
-  i386_optab + 1668,
-  i386_optab + 1670,
-  i386_optab + 1672,
-  i386_optab + 1674,
-  i386_optab + 1676,
-  i386_optab + 1678,
-  i386_optab + 1680,
-  i386_optab + 1682,
-  i386_optab + 1684,
-  i386_optab + 1686,
-  i386_optab + 1688,
-  i386_optab + 1690,
-  i386_optab + 1692,
-  i386_optab + 1694,
-  i386_optab + 1696,
-  i386_optab + 1698,
-  i386_optab + 1700,
-  i386_optab + 1702,
-  i386_optab + 1704,
-  i386_optab + 1706,
-  i386_optab + 1708,
-  i386_optab + 1710,
-  i386_optab + 1712,
-  i386_optab + 1714,
-  i386_optab + 1716,
-  i386_optab + 1718,
-  i386_optab + 1720,
-  i386_optab + 1722,
-  i386_optab + 1724,
-  i386_optab + 1726,
-  i386_optab + 1728,
-  i386_optab + 1730,
-  i386_optab + 1732,
-  i386_optab + 1734,
-  i386_optab + 1736,
-  i386_optab + 1738,
-  i386_optab + 1740,
-  i386_optab + 1742,
-  i386_optab + 1744,
-  i386_optab + 1746,
-  i386_optab + 1748,
-  i386_optab + 1750,
-  i386_optab + 1752,
-  i386_optab + 1754,
-  i386_optab + 1756,
-  i386_optab + 1758,
-  i386_optab + 1760,
-  i386_optab + 1762,
-  i386_optab + 1764,
-  i386_optab + 1766,
-  i386_optab + 1768,
-  i386_optab + 1770,
-  i386_optab + 1772,
-  i386_optab + 1774,
-  i386_optab + 1776,
-  i386_optab + 1778,
-  i386_optab + 1780,
-  i386_optab + 1782,
-  i386_optab + 1784,
-  i386_optab + 1786,
-  i386_optab + 1788,
-  i386_optab + 1790,
-  i386_optab + 1792,
-  i386_optab + 1794,
-  i386_optab + 1796,
-  i386_optab + 1798,
-  i386_optab + 1800,
-  i386_optab + 1802,
-  i386_optab + 1804,
-  i386_optab + 1806,
-  i386_optab + 1808,
-  i386_optab + 1810,
-  i386_optab + 1812,
-  i386_optab + 1814,
-  i386_optab + 1816,
-  i386_optab + 1818,
-  i386_optab + 1820,
-  i386_optab + 1822,
-  i386_optab + 1824,
-  i386_optab + 1826,
-  i386_optab + 1828,
-  i386_optab + 1830,
-  i386_optab + 1832,
-  i386_optab + 1834,
-  i386_optab + 1836,
-  i386_optab + 1838,
-  i386_optab + 1840,
-  i386_optab + 1842,
-  i386_optab + 1844,
-  i386_optab + 1846,
-  i386_optab + 1848,
-  i386_optab + 1850,
-  i386_optab + 1852,
-  i386_optab + 1854,
-  i386_optab + 1856,
-  i386_optab + 1858,
-  i386_optab + 1860,
-  i386_optab + 1862,
-  i386_optab + 1864,
-  i386_optab + 1866,
-  i386_optab + 1868,
-  i386_optab + 1870,
-  i386_optab + 1872,
-  i386_optab + 1874,
-  i386_optab + 1876,
-  i386_optab + 1878,
+  i386_optab + 1613,
+  i386_optab + 1615,
+  i386_optab + 1617,
+  i386_optab + 1619,
+  i386_optab + 1621,
+  i386_optab + 1623,
+  i386_optab + 1625,
+  i386_optab + 1627,
+  i386_optab + 1629,
+  i386_optab + 1631,
+  i386_optab + 1633,
+  i386_optab + 1635,
+  i386_optab + 1637,
+  i386_optab + 1639,
+  i386_optab + 1641,
+  i386_optab + 1643,
+  i386_optab + 1645,
+  i386_optab + 1647,
+  i386_optab + 1649,
+  i386_optab + 1651,
+  i386_optab + 1653,
+  i386_optab + 1655,
+  i386_optab + 1657,
+  i386_optab + 1659,
+  i386_optab + 1661,
+  i386_optab + 1663,
+  i386_optab + 1665,
+  i386_optab + 1667,
+  i386_optab + 1669,
+  i386_optab + 1671,
+  i386_optab + 1673,
+  i386_optab + 1675,
+  i386_optab + 1677,
+  i386_optab + 1679,
+  i386_optab + 1681,
+  i386_optab + 1683,
+  i386_optab + 1685,
+  i386_optab + 1687,
+  i386_optab + 1689,
+  i386_optab + 1691,
+  i386_optab + 1693,
+  i386_optab + 1695,
+  i386_optab + 1697,
+  i386_optab + 1699,
+  i386_optab + 1701,
+  i386_optab + 1703,
+  i386_optab + 1705,
+  i386_optab + 1707,
+  i386_optab + 1709,
+  i386_optab + 1711,
+  i386_optab + 1713,
+  i386_optab + 1715,
+  i386_optab + 1717,
+  i386_optab + 1719,
+  i386_optab + 1721,
+  i386_optab + 1723,
+  i386_optab + 1725,
+  i386_optab + 1727,
+  i386_optab + 1729,
+  i386_optab + 1731,
+  i386_optab + 1733,
+  i386_optab + 1735,
+  i386_optab + 1737,
+  i386_optab + 1739,
+  i386_optab + 1741,
+  i386_optab + 1743,
+  i386_optab + 1745,
+  i386_optab + 1747,
+  i386_optab + 1749,
+  i386_optab + 1751,
+  i386_optab + 1753,
+  i386_optab + 1755,
+  i386_optab + 1757,
+  i386_optab + 1759,
+  i386_optab + 1761,
+  i386_optab + 1763,
+  i386_optab + 1765,
+  i386_optab + 1767,
+  i386_optab + 1769,
+  i386_optab + 1771,
+  i386_optab + 1773,
+  i386_optab + 1775,
+  i386_optab + 1777,
+  i386_optab + 1779,
+  i386_optab + 1781,
+  i386_optab + 1783,
+  i386_optab + 1785,
+  i386_optab + 1787,
+  i386_optab + 1789,
+  i386_optab + 1791,
+  i386_optab + 1793,
+  i386_optab + 1795,
+  i386_optab + 1797,
+  i386_optab + 1799,
+  i386_optab + 1801,
+  i386_optab + 1803,
+  i386_optab + 1805,
+  i386_optab + 1807,
+  i386_optab + 1809,
+  i386_optab + 1811,
+  i386_optab + 1813,
+  i386_optab + 1815,
+  i386_optab + 1817,
+  i386_optab + 1819,
+  i386_optab + 1821,
+  i386_optab + 1823,
+  i386_optab + 1825,
+  i386_optab + 1827,
+  i386_optab + 1829,
+  i386_optab + 1831,
+  i386_optab + 1833,
+  i386_optab + 1835,
+  i386_optab + 1837,
+  i386_optab + 1839,
+  i386_optab + 1841,
+  i386_optab + 1843,
+  i386_optab + 1845,
+  i386_optab + 1847,
+  i386_optab + 1849,
+  i386_optab + 1851,
+  i386_optab + 1853,
+  i386_optab + 1855,
+  i386_optab + 1857,
+  i386_optab + 1859,
+  i386_optab + 1861,
+  i386_optab + 1863,
+  i386_optab + 1865,
+  i386_optab + 1867,
+  i386_optab + 1869,
+  i386_optab + 1871,
+  i386_optab + 1873,
+  i386_optab + 1875,
+  i386_optab + 1877,
+  i386_optab + 1879,
+  i386_optab + 1881,
   i386_optab + 1883,
   i386_optab + 1885,
-  i386_optab + 1890,
-  i386_optab + 1892,
-  i386_optab + 1894,
+  i386_optab + 1887,
+  i386_optab + 1889,
+  i386_optab + 1891,
+  i386_optab + 1893,
+  i386_optab + 1895,
+  i386_optab + 1897,
   i386_optab + 1899,
   i386_optab + 1901,
   i386_optab + 1903,
   i386_optab + 1905,
-  i386_optab + 1910,
-  i386_optab + 1912,
-  i386_optab + 1914,
-  i386_optab + 1916,
-  i386_optab + 1920,
-  i386_optab + 1926,
-  i386_optab + 1928,
+  i386_optab + 1907,
+  i386_optab + 1909,
+  i386_optab + 1911,
+  i386_optab + 1913,
+  i386_optab + 1915,
+  i386_optab + 1917,
+  i386_optab + 1919,
+  i386_optab + 1921,
+  i386_optab + 1923,
+  i386_optab + 1925,
+  i386_optab + 1927,
+  i386_optab + 1929,
+  i386_optab + 1931,
   i386_optab + 1933,
   i386_optab + 1935,
   i386_optab + 1937,
@@ -36894,54 +38934,44 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 1947,
   i386_optab + 1949,
   i386_optab + 1951,
-  i386_optab + 1952,
   i386_optab + 1953,
-  i386_optab + 1954,
-  i386_optab + 1956,
+  i386_optab + 1955,
   i386_optab + 1957,
-  i386_optab + 1958,
   i386_optab + 1959,
-  i386_optab + 1960,
   i386_optab + 1961,
   i386_optab + 1963,
-  i386_optab + 1964,
   i386_optab + 1965,
-  i386_optab + 1966,
-  i386_optab + 1968,
-  i386_optab + 1970,
-  i386_optab + 1972,
-  i386_optab + 1974,
-  i386_optab + 1976,
-  i386_optab + 1978,
-  i386_optab + 1980,
-  i386_optab + 1982,
-  i386_optab + 1984,
-  i386_optab + 1986,
-  i386_optab + 1988,
-  i386_optab + 1990,
-  i386_optab + 1992,
-  i386_optab + 1996,
-  i386_optab + 1997,
-  i386_optab + 1998,
+  i386_optab + 1967,
+  i386_optab + 1969,
+  i386_optab + 1971,
+  i386_optab + 1973,
+  i386_optab + 1975,
+  i386_optab + 1977,
+  i386_optab + 1979,
+  i386_optab + 1981,
+  i386_optab + 1983,
+  i386_optab + 1985,
+  i386_optab + 1987,
+  i386_optab + 1989,
+  i386_optab + 1991,
+  i386_optab + 1993,
+  i386_optab + 1995,
   i386_optab + 2000,
-  i386_optab + 2004,
-  i386_optab + 2008,
-  i386_optab + 2010,
-  i386_optab + 2014,
+  i386_optab + 2002,
+  i386_optab + 2007,
+  i386_optab + 2009,
+  i386_optab + 2011,
+  i386_optab + 2016,
   i386_optab + 2018,
-  i386_optab + 2019,
   i386_optab + 2020,
   i386_optab + 2022,
-  i386_optab + 2024,
-  i386_optab + 2026,
-  i386_optab + 2028,
+  i386_optab + 2027,
+  i386_optab + 2029,
+  i386_optab + 2031,
   i386_optab + 2033,
   i386_optab + 2037,
-  i386_optab + 2041,
   i386_optab + 2043,
   i386_optab + 2045,
-  i386_optab + 2047,
-  i386_optab + 2049,
   i386_optab + 2050,
   i386_optab + 2052,
   i386_optab + 2054,
@@ -36952,306 +38982,255 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2064,
   i386_optab + 2066,
   i386_optab + 2068,
+  i386_optab + 2069,
   i386_optab + 2070,
-  i386_optab + 2072,
+  i386_optab + 2071,
+  i386_optab + 2073,
   i386_optab + 2074,
+  i386_optab + 2075,
   i386_optab + 2076,
+  i386_optab + 2077,
   i386_optab + 2078,
   i386_optab + 2080,
+  i386_optab + 2081,
   i386_optab + 2082,
-  i386_optab + 2084,
-  i386_optab + 2086,
-  i386_optab + 2088,
-  i386_optab + 2090,
-  i386_optab + 2092,
-  i386_optab + 2094,
+  i386_optab + 2083,
+  i386_optab + 2085,
+  i386_optab + 2087,
+  i386_optab + 2089,
+  i386_optab + 2091,
+  i386_optab + 2093,
   i386_optab + 2095,
-  i386_optab + 2096,
-  i386_optab + 2098,
-  i386_optab + 2100,
+  i386_optab + 2097,
+  i386_optab + 2099,
   i386_optab + 2101,
-  i386_optab + 2102,
+  i386_optab + 2103,
   i386_optab + 2105,
-  i386_optab + 2108,
-  i386_optab + 2111,
+  i386_optab + 2107,
+  i386_optab + 2109,
+  i386_optab + 2113,
   i386_optab + 2114,
-  i386_optab + 2116,
-  i386_optab + 2118,
-  i386_optab + 2120,
-  i386_optab + 2122,
-  i386_optab + 2124,
-  i386_optab + 2126,
+  i386_optab + 2115,
+  i386_optab + 2117,
+  i386_optab + 2121,
+  i386_optab + 2125,
   i386_optab + 2127,
-  i386_optab + 2128,
-  i386_optab + 2129,
   i386_optab + 2131,
   i386_optab + 2135,
+  i386_optab + 2136,
   i386_optab + 2137,
   i386_optab + 2139,
+  i386_optab + 2141,
+  i386_optab + 2143,
   i386_optab + 2145,
-  i386_optab + 2149,
   i386_optab + 2150,
-  i386_optab + 2151,
-  i386_optab + 2152,
-  i386_optab + 2153,
   i386_optab + 2154,
-  i386_optab + 2155,
-  i386_optab + 2156,
+  i386_optab + 2158,
   i386_optab + 2160,
   i386_optab + 2162,
   i386_optab + 2164,
-  i386_optab + 2168,
-  i386_optab + 2170,
-  i386_optab + 2172,
-  i386_optab + 2174,
-  i386_optab + 2176,
-  i386_optab + 2178,
-  i386_optab + 2180,
-  i386_optab + 2182,
-  i386_optab + 2184,
-  i386_optab + 2186,
-  i386_optab + 2188,
-  i386_optab + 2190,
-  i386_optab + 2192,
-  i386_optab + 2194,
-  i386_optab + 2196,
+  i386_optab + 2166,
+  i386_optab + 2167,
+  i386_optab + 2169,
+  i386_optab + 2171,
+  i386_optab + 2173,
+  i386_optab + 2175,
+  i386_optab + 2177,
+  i386_optab + 2179,
+  i386_optab + 2181,
+  i386_optab + 2183,
+  i386_optab + 2185,
+  i386_optab + 2187,
+  i386_optab + 2189,
+  i386_optab + 2191,
+  i386_optab + 2193,
+  i386_optab + 2195,
   i386_optab + 2197,
-  i386_optab + 2200,
+  i386_optab + 2199,
+  i386_optab + 2201,
   i386_optab + 2203,
-  i386_optab + 2208,
+  i386_optab + 2205,
+  i386_optab + 2207,
+  i386_optab + 2209,
+  i386_optab + 2211,
+  i386_optab + 2212,
   i386_optab + 2213,
-  i386_optab + 2216,
+  i386_optab + 2215,
+  i386_optab + 2217,
+  i386_optab + 2218,
   i386_optab + 2219,
   i386_optab + 2222,
   i386_optab + 2225,
-  i386_optab + 2230,
+  i386_optab + 2228,
+  i386_optab + 2231,
+  i386_optab + 2233,
   i386_optab + 2235,
-  i386_optab + 2238,
+  i386_optab + 2237,
+  i386_optab + 2239,
   i386_optab + 2241,
   i386_optab + 2243,
+  i386_optab + 2244,
   i386_optab + 2245,
-  i386_optab + 2247,
-  i386_optab + 2249,
-  i386_optab + 2251,
-  i386_optab + 2253,
-  i386_optab + 2255,
+  i386_optab + 2246,
+  i386_optab + 2248,
+  i386_optab + 2252,
+  i386_optab + 2254,
   i386_optab + 2256,
-  i386_optab + 2258,
-  i386_optab + 2260,
   i386_optab + 2262,
-  i386_optab + 2264,
   i386_optab + 2266,
   i386_optab + 2267,
   i386_optab + 2268,
   i386_optab + 2269,
+  i386_optab + 2270,
+  i386_optab + 2271,
+  i386_optab + 2272,
   i386_optab + 2273,
   i386_optab + 2277,
   i386_optab + 2279,
-  i386_optab + 2283,
+  i386_optab + 2281,
+  i386_optab + 2285,
   i386_optab + 2287,
+  i386_optab + 2289,
   i386_optab + 2291,
+  i386_optab + 2293,
   i386_optab + 2295,
+  i386_optab + 2297,
   i386_optab + 2299,
   i386_optab + 2301,
+  i386_optab + 2303,
   i386_optab + 2305,
   i386_optab + 2307,
   i386_optab + 2309,
   i386_optab + 2311,
   i386_optab + 2313,
-  i386_optab + 2315,
+  i386_optab + 2314,
   i386_optab + 2317,
-  i386_optab + 2319,
-  i386_optab + 2321,
-  i386_optab + 2322,
-  i386_optab + 2324,
-  i386_optab + 2326,
-  i386_optab + 2328,
+  i386_optab + 2320,
+  i386_optab + 2325,
   i386_optab + 2330,
-  i386_optab + 2332,
-  i386_optab + 2334,
+  i386_optab + 2333,
   i386_optab + 2336,
-  i386_optab + 2338,
   i386_optab + 2339,
-  i386_optab + 2340,
-  i386_optab + 2341,
   i386_optab + 2342,
-  i386_optab + 2343,
-  i386_optab + 2344,
-  i386_optab + 2345,
-  i386_optab + 2346,
   i386_optab + 2347,
-  i386_optab + 2349,
-  i386_optab + 2351,
-  i386_optab + 2353,
+  i386_optab + 2352,
   i386_optab + 2355,
-  i386_optab + 2357,
-  i386_optab + 2359,
+  i386_optab + 2358,
   i386_optab + 2360,
   i386_optab + 2362,
   i386_optab + 2364,
   i386_optab + 2366,
   i386_optab + 2368,
-  i386_optab + 2369,
   i386_optab + 2370,
   i386_optab + 2372,
-  i386_optab + 2374,
-  i386_optab + 2376,
-  i386_optab + 2378,
-  i386_optab + 2380,
-  i386_optab + 2382,
+  i386_optab + 2373,
+  i386_optab + 2375,
+  i386_optab + 2377,
+  i386_optab + 2379,
+  i386_optab + 2381,
+  i386_optab + 2383,
   i386_optab + 2384,
+  i386_optab + 2385,
   i386_optab + 2386,
-  i386_optab + 2387,
-  i386_optab + 2388,
-  i386_optab + 2389,
   i386_optab + 2390,
-  i386_optab + 2393,
+  i386_optab + 2394,
   i386_optab + 2396,
-  i386_optab + 2398,
-  i386_optab + 2401,
-  i386_optab + 2402,
-  i386_optab + 2403,
-  i386_optab + 2405,
-  i386_optab + 2406,
+  i386_optab + 2400,
+  i386_optab + 2404,
   i386_optab + 2408,
-  i386_optab + 2409,
-  i386_optab + 2410,
   i386_optab + 2412,
-  i386_optab + 2414,
-  i386_optab + 2415,
   i386_optab + 2416,
-  i386_optab + 2417,
   i386_optab + 2418,
-  i386_optab + 2419,
   i386_optab + 2422,
-  i386_optab + 2427,
+  i386_optab + 2424,
+  i386_optab + 2426,
+  i386_optab + 2428,
+  i386_optab + 2430,
   i386_optab + 2432,
-  i386_optab + 2437,
-  i386_optab + 2442,
+  i386_optab + 2434,
+  i386_optab + 2436,
+  i386_optab + 2438,
+  i386_optab + 2439,
+  i386_optab + 2441,
+  i386_optab + 2443,
   i386_optab + 2445,
-  i386_optab + 2450,
+  i386_optab + 2447,
+  i386_optab + 2449,
+  i386_optab + 2451,
+  i386_optab + 2453,
   i386_optab + 2455,
+  i386_optab + 2456,
   i386_optab + 2457,
+  i386_optab + 2458,
   i386_optab + 2459,
+  i386_optab + 2460,
   i386_optab + 2461,
+  i386_optab + 2462,
   i386_optab + 2463,
   i386_optab + 2464,
-  i386_optab + 2465,
-  i386_optab + 2467,
-  i386_optab + 2469,
-  i386_optab + 2471,
-  i386_optab + 2473,
-  i386_optab + 2475,
+  i386_optab + 2466,
+  i386_optab + 2468,
+  i386_optab + 2470,
+  i386_optab + 2472,
+  i386_optab + 2474,
+  i386_optab + 2476,
   i386_optab + 2477,
   i386_optab + 2479,
-  i386_optab + 2480,
   i386_optab + 2481,
-  i386_optab + 2482,
   i386_optab + 2483,
-  i386_optab + 2484,
   i386_optab + 2485,
-  i386_optab + 2490,
+  i386_optab + 2486,
+  i386_optab + 2487,
+  i386_optab + 2489,
+  i386_optab + 2491,
+  i386_optab + 2493,
   i386_optab + 2495,
-  i386_optab + 2496,
   i386_optab + 2497,
-  i386_optab + 2498,
   i386_optab + 2499,
-  i386_optab + 2500,
   i386_optab + 2501,
-  i386_optab + 2502,
   i386_optab + 2503,
   i386_optab + 2504,
   i386_optab + 2505,
   i386_optab + 2506,
   i386_optab + 2507,
-  i386_optab + 2508,
-  i386_optab + 2509,
   i386_optab + 2510,
-  i386_optab + 2511,
-  i386_optab + 2512,
   i386_optab + 2513,
-  i386_optab + 2514,
   i386_optab + 2515,
-  i386_optab + 2516,
-  i386_optab + 2517,
   i386_optab + 2518,
   i386_optab + 2519,
   i386_optab + 2520,
-  i386_optab + 2521,
   i386_optab + 2522,
   i386_optab + 2523,
-  i386_optab + 2524,
   i386_optab + 2525,
   i386_optab + 2526,
   i386_optab + 2527,
-  i386_optab + 2528,
   i386_optab + 2529,
-  i386_optab + 2530,
   i386_optab + 2531,
   i386_optab + 2532,
   i386_optab + 2533,
   i386_optab + 2534,
   i386_optab + 2535,
   i386_optab + 2536,
-  i386_optab + 2537,
-  i386_optab + 2538,
   i386_optab + 2539,
-  i386_optab + 2540,
-  i386_optab + 2541,
-  i386_optab + 2542,
-  i386_optab + 2543,
   i386_optab + 2544,
-  i386_optab + 2545,
-  i386_optab + 2546,
-  i386_optab + 2547,
-  i386_optab + 2548,
   i386_optab + 2549,
-  i386_optab + 2550,
-  i386_optab + 2551,
-  i386_optab + 2552,
-  i386_optab + 2553,
   i386_optab + 2554,
-  i386_optab + 2555,
-  i386_optab + 2556,
-  i386_optab + 2557,
-  i386_optab + 2558,
   i386_optab + 2559,
-  i386_optab + 2560,
-  i386_optab + 2561,
   i386_optab + 2562,
-  i386_optab + 2563,
-  i386_optab + 2564,
-  i386_optab + 2565,
-  i386_optab + 2566,
   i386_optab + 2567,
-  i386_optab + 2568,
-  i386_optab + 2569,
-  i386_optab + 2570,
-  i386_optab + 2571,
   i386_optab + 2572,
-  i386_optab + 2573,
   i386_optab + 2574,
-  i386_optab + 2575,
   i386_optab + 2576,
-  i386_optab + 2577,
   i386_optab + 2578,
-  i386_optab + 2579,
   i386_optab + 2580,
   i386_optab + 2581,
   i386_optab + 2582,
-  i386_optab + 2583,
   i386_optab + 2584,
-  i386_optab + 2585,
   i386_optab + 2586,
-  i386_optab + 2587,
   i386_optab + 2588,
-  i386_optab + 2589,
   i386_optab + 2590,
-  i386_optab + 2591,
   i386_optab + 2592,
-  i386_optab + 2593,
   i386_optab + 2594,
-  i386_optab + 2595,
   i386_optab + 2596,
   i386_optab + 2597,
   i386_optab + 2598,
@@ -37259,15 +39238,7 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2600,
   i386_optab + 2601,
   i386_optab + 2602,
-  i386_optab + 2603,
-  i386_optab + 2604,
-  i386_optab + 2605,
-  i386_optab + 2606,
   i386_optab + 2607,
-  i386_optab + 2608,
-  i386_optab + 2609,
-  i386_optab + 2610,
-  i386_optab + 2611,
   i386_optab + 2612,
   i386_optab + 2613,
   i386_optab + 2614,
@@ -37353,7 +39324,9 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2694,
   i386_optab + 2695,
   i386_optab + 2696,
+  i386_optab + 2697,
   i386_optab + 2698,
+  i386_optab + 2699,
   i386_optab + 2700,
   i386_optab + 2701,
   i386_optab + 2702,
@@ -37363,29 +39336,25 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2706,
   i386_optab + 2707,
   i386_optab + 2708,
-  i386_optab + 2709,
   i386_optab + 2710,
-  i386_optab + 2711,
   i386_optab + 2712,
-  i386_optab + 2713,
   i386_optab + 2714,
-  i386_optab + 2715,
   i386_optab + 2716,
-  i386_optab + 2717,
   i386_optab + 2718,
-  i386_optab + 2719,
   i386_optab + 2720,
-  i386_optab + 2721,
   i386_optab + 2722,
-  i386_optab + 2723,
   i386_optab + 2724,
   i386_optab + 2725,
   i386_optab + 2726,
   i386_optab + 2727,
   i386_optab + 2728,
+  i386_optab + 2729,
   i386_optab + 2730,
+  i386_optab + 2731,
   i386_optab + 2732,
+  i386_optab + 2733,
   i386_optab + 2734,
+  i386_optab + 2735,
   i386_optab + 2736,
   i386_optab + 2737,
   i386_optab + 2738,
@@ -37400,6 +39369,7 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2747,
   i386_optab + 2748,
   i386_optab + 2749,
+  i386_optab + 2750,
   i386_optab + 2751,
   i386_optab + 2752,
   i386_optab + 2753,
@@ -37446,17 +39416,24 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2794,
   i386_optab + 2795,
   i386_optab + 2796,
+  i386_optab + 2797,
   i386_optab + 2798,
+  i386_optab + 2799,
   i386_optab + 2800,
   i386_optab + 2801,
   i386_optab + 2802,
+  i386_optab + 2803,
   i386_optab + 2804,
   i386_optab + 2805,
+  i386_optab + 2806,
   i386_optab + 2807,
+  i386_optab + 2808,
   i386_optab + 2809,
   i386_optab + 2810,
   i386_optab + 2811,
+  i386_optab + 2812,
   i386_optab + 2813,
+  i386_optab + 2814,
   i386_optab + 2815,
   i386_optab + 2816,
   i386_optab + 2817,
@@ -37464,9 +39441,7 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2819,
   i386_optab + 2820,
   i386_optab + 2821,
-  i386_optab + 2822,
   i386_optab + 2823,
-  i386_optab + 2824,
   i386_optab + 2825,
   i386_optab + 2826,
   i386_optab + 2827,
@@ -37484,8 +39459,11 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2839,
   i386_optab + 2840,
   i386_optab + 2841,
+  i386_optab + 2842,
   i386_optab + 2843,
+  i386_optab + 2844,
   i386_optab + 2845,
+  i386_optab + 2846,
   i386_optab + 2847,
   i386_optab + 2848,
   i386_optab + 2849,
@@ -37494,11 +39472,8 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2852,
   i386_optab + 2853,
   i386_optab + 2855,
-  i386_optab + 2856,
   i386_optab + 2857,
-  i386_optab + 2858,
   i386_optab + 2859,
-  i386_optab + 2860,
   i386_optab + 2861,
   i386_optab + 2862,
   i386_optab + 2863,
@@ -37512,12 +39487,10 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2871,
   i386_optab + 2872,
   i386_optab + 2873,
-  i386_optab + 2874,
   i386_optab + 2875,
   i386_optab + 2878,
-  i386_optab + 2881,
+  i386_optab + 2880,
   i386_optab + 2882,
-  i386_optab + 2883,
   i386_optab + 2884,
   i386_optab + 2885,
   i386_optab + 2886,
@@ -37561,53 +39534,55 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2924,
   i386_optab + 2925,
   i386_optab + 2926,
-  i386_optab + 2927,
   i386_optab + 2928,
-  i386_optab + 2929,
   i386_optab + 2930,
   i386_optab + 2931,
   i386_optab + 2932,
-  i386_optab + 2933,
   i386_optab + 2934,
   i386_optab + 2935,
-  i386_optab + 2938,
+  i386_optab + 2937,
+  i386_optab + 2939,
   i386_optab + 2940,
+  i386_optab + 2941,
   i386_optab + 2943,
+  i386_optab + 2945,
   i386_optab + 2946,
+  i386_optab + 2947,
   i386_optab + 2948,
+  i386_optab + 2949,
+  i386_optab + 2950,
   i386_optab + 2951,
+  i386_optab + 2952,
+  i386_optab + 2953,
   i386_optab + 2954,
+  i386_optab + 2955,
+  i386_optab + 2956,
   i386_optab + 2957,
+  i386_optab + 2958,
+  i386_optab + 2959,
   i386_optab + 2960,
   i386_optab + 2961,
-  i386_optab + 2964,
-  i386_optab + 2965,
+  i386_optab + 2962,
+  i386_optab + 2963,
   i386_optab + 2966,
-  i386_optab + 2967,
-  i386_optab + 2968,
   i386_optab + 2969,
+  i386_optab + 2970,
+  i386_optab + 2971,
+  i386_optab + 2972,
   i386_optab + 2973,
+  i386_optab + 2974,
   i386_optab + 2975,
-  i386_optab + 2978,
+  i386_optab + 2977,
   i386_optab + 2979,
-  i386_optab + 2980,
   i386_optab + 2981,
   i386_optab + 2982,
   i386_optab + 2983,
-  i386_optab + 2984,
   i386_optab + 2985,
-  i386_optab + 2986,
   i386_optab + 2987,
-  i386_optab + 2988,
   i386_optab + 2989,
-  i386_optab + 2990,
   i386_optab + 2991,
-  i386_optab + 2992,
-  i386_optab + 2993,
   i386_optab + 2994,
-  i386_optab + 2995,
   i386_optab + 2996,
-  i386_optab + 2997,
   i386_optab + 2998,
   i386_optab + 2999,
   i386_optab + 3000,
@@ -37627,23 +39602,14 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3014,
   i386_optab + 3015,
   i386_optab + 3016,
-  i386_optab + 3017,
-  i386_optab + 3018,
-  i386_optab + 3019,
-  i386_optab + 3020,
-  i386_optab + 3021,
   i386_optab + 3022,
-  i386_optab + 3023,
-  i386_optab + 3024,
-  i386_optab + 3025,
-  i386_optab + 3026,
-  i386_optab + 3027,
   i386_optab + 3028,
   i386_optab + 3029,
   i386_optab + 3030,
   i386_optab + 3031,
   i386_optab + 3032,
   i386_optab + 3033,
+  i386_optab + 3034,
   i386_optab + 3035,
   i386_optab + 3036,
   i386_optab + 3037,
@@ -37684,25 +39650,32 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3072,
   i386_optab + 3073,
   i386_optab + 3074,
+  i386_optab + 3075,
+  i386_optab + 3076,
   i386_optab + 3077,
+  i386_optab + 3078,
+  i386_optab + 3079,
   i386_optab + 3080,
-  i386_optab + 3083,
-  i386_optab + 3086,
-  i386_optab + 3089,
-  i386_optab + 3092,
+  i386_optab + 3081,
+  i386_optab + 3082,
+  i386_optab + 3085,
+  i386_optab + 3087,
+  i386_optab + 3090,
+  i386_optab + 3093,
   i386_optab + 3095,
   i386_optab + 3098,
   i386_optab + 3101,
   i386_optab + 3104,
   i386_optab + 3107,
-  i386_optab + 3110,
+  i386_optab + 3108,
+  i386_optab + 3111,
+  i386_optab + 3112,
   i386_optab + 3113,
+  i386_optab + 3114,
+  i386_optab + 3115,
   i386_optab + 3116,
-  i386_optab + 3119,
   i386_optab + 3120,
-  i386_optab + 3121,
   i386_optab + 3122,
-  i386_optab + 3123,
   i386_optab + 3125,
   i386_optab + 3126,
   i386_optab + 3127,
@@ -37759,13 +39732,16 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3178,
   i386_optab + 3179,
   i386_optab + 3180,
-  i386_optab + 3181,
   i386_optab + 3182,
   i386_optab + 3183,
   i386_optab + 3184,
   i386_optab + 3185,
   i386_optab + 3186,
+  i386_optab + 3187,
+  i386_optab + 3188,
   i386_optab + 3189,
+  i386_optab + 3190,
+  i386_optab + 3191,
   i386_optab + 3192,
   i386_optab + 3193,
   i386_optab + 3194,
@@ -37796,50 +39772,25 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3219,
   i386_optab + 3220,
   i386_optab + 3221,
-  i386_optab + 3222,
-  i386_optab + 3223,
   i386_optab + 3224,
-  i386_optab + 3225,
-  i386_optab + 3226,
   i386_optab + 3227,
-  i386_optab + 3228,
-  i386_optab + 3229,
   i386_optab + 3230,
-  i386_optab + 3231,
-  i386_optab + 3232,
   i386_optab + 3233,
-  i386_optab + 3234,
-  i386_optab + 3235,
   i386_optab + 3236,
-  i386_optab + 3237,
-  i386_optab + 3238,
   i386_optab + 3239,
-  i386_optab + 3240,
-  i386_optab + 3241,
   i386_optab + 3242,
-  i386_optab + 3243,
-  i386_optab + 3244,
   i386_optab + 3245,
-  i386_optab + 3246,
-  i386_optab + 3247,
   i386_optab + 3248,
-  i386_optab + 3249,
-  i386_optab + 3250,
   i386_optab + 3251,
-  i386_optab + 3252,
-  i386_optab + 3253,
   i386_optab + 3254,
   i386_optab + 3257,
   i386_optab + 3260,
   i386_optab + 3263,
-  i386_optab + 3264,
-  i386_optab + 3265,
   i386_optab + 3266,
   i386_optab + 3267,
   i386_optab + 3268,
   i386_optab + 3269,
   i386_optab + 3270,
-  i386_optab + 3271,
   i386_optab + 3272,
   i386_optab + 3273,
   i386_optab + 3274,
@@ -37848,17 +39799,29 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3277,
   i386_optab + 3278,
   i386_optab + 3279,
+  i386_optab + 3280,
+  i386_optab + 3281,
   i386_optab + 3282,
+  i386_optab + 3283,
+  i386_optab + 3284,
   i386_optab + 3285,
   i386_optab + 3286,
   i386_optab + 3287,
+  i386_optab + 3288,
+  i386_optab + 3289,
   i386_optab + 3290,
   i386_optab + 3291,
   i386_optab + 3292,
   i386_optab + 3293,
   i386_optab + 3294,
+  i386_optab + 3295,
+  i386_optab + 3296,
   i386_optab + 3297,
+  i386_optab + 3298,
+  i386_optab + 3299,
   i386_optab + 3300,
+  i386_optab + 3301,
+  i386_optab + 3302,
   i386_optab + 3303,
   i386_optab + 3304,
   i386_optab + 3305,
@@ -37870,7 +39833,9 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3311,
   i386_optab + 3312,
   i386_optab + 3313,
+  i386_optab + 3314,
   i386_optab + 3315,
+  i386_optab + 3316,
   i386_optab + 3317,
   i386_optab + 3318,
   i386_optab + 3319,
@@ -37888,16 +39853,8 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3331,
   i386_optab + 3332,
   i386_optab + 3333,
-  i386_optab + 3334,
-  i386_optab + 3335,
-  i386_optab + 3336,
-  i386_optab + 3337,
-  i386_optab + 3338,
   i386_optab + 3339,
-  i386_optab + 3340,
-  i386_optab + 3341,
-  i386_optab + 3342,
-  i386_optab + 3344,
+  i386_optab + 3345,
   i386_optab + 3346,
   i386_optab + 3347,
   i386_optab + 3348,
@@ -37924,9 +39881,13 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3369,
   i386_optab + 3370,
   i386_optab + 3371,
+  i386_optab + 3372,
   i386_optab + 3373,
+  i386_optab + 3374,
   i386_optab + 3375,
+  i386_optab + 3376,
   i386_optab + 3377,
+  i386_optab + 3378,
   i386_optab + 3379,
   i386_optab + 3380,
   i386_optab + 3381,
@@ -37943,20 +39904,21 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3392,
   i386_optab + 3393,
   i386_optab + 3394,
+  i386_optab + 3395,
   i386_optab + 3396,
   i386_optab + 3397,
+  i386_optab + 3398,
   i386_optab + 3399,
+  i386_optab + 3400,
+  i386_optab + 3401,
   i386_optab + 3402,
+  i386_optab + 3403,
   i386_optab + 3404,
   i386_optab + 3405,
   i386_optab + 3406,
-  i386_optab + 3408,
+  i386_optab + 3407,
   i386_optab + 3410,
-  i386_optab + 3411,
-  i386_optab + 3412,
   i386_optab + 3413,
-  i386_optab + 3414,
-  i386_optab + 3415,
   i386_optab + 3416,
   i386_optab + 3417,
   i386_optab + 3418,
@@ -37971,31 +39933,33 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3427,
   i386_optab + 3428,
   i386_optab + 3429,
+  i386_optab + 3430,
   i386_optab + 3431,
-  i386_optab + 3433,
-  i386_optab + 3434,
+  i386_optab + 3432,
   i386_optab + 3435,
-  i386_optab + 3436,
-  i386_optab + 3437,
-  i386_optab + 3442,
+  i386_optab + 3438,
+  i386_optab + 3439,
+  i386_optab + 3440,
+  i386_optab + 3443,
   i386_optab + 3444,
+  i386_optab + 3445,
   i386_optab + 3446,
   i386_optab + 3447,
-  i386_optab + 3448,
-  i386_optab + 3449,
   i386_optab + 3450,
-  i386_optab + 3451,
-  i386_optab + 3452,
   i386_optab + 3453,
-  i386_optab + 3454,
-  i386_optab + 3455,
   i386_optab + 3456,
   i386_optab + 3457,
   i386_optab + 3458,
+  i386_optab + 3459,
   i386_optab + 3460,
+  i386_optab + 3461,
+  i386_optab + 3462,
   i386_optab + 3463,
+  i386_optab + 3464,
+  i386_optab + 3465,
   i386_optab + 3466,
-  i386_optab + 3469,
+  i386_optab + 3468,
+  i386_optab + 3470,
   i386_optab + 3471,
   i386_optab + 3472,
   i386_optab + 3473,
@@ -38021,9 +39985,7 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3493,
   i386_optab + 3494,
   i386_optab + 3495,
-  i386_optab + 3496,
   i386_optab + 3497,
-  i386_optab + 3498,
   i386_optab + 3499,
   i386_optab + 3500,
   i386_optab + 3501,
@@ -38050,13 +40012,9 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3522,
   i386_optab + 3523,
   i386_optab + 3524,
-  i386_optab + 3525,
   i386_optab + 3526,
-  i386_optab + 3527,
   i386_optab + 3528,
-  i386_optab + 3529,
   i386_optab + 3530,
-  i386_optab + 3531,
   i386_optab + 3532,
   i386_optab + 3533,
   i386_optab + 3534,
@@ -38073,21 +40031,14 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3545,
   i386_optab + 3546,
   i386_optab + 3547,
-  i386_optab + 3548,
   i386_optab + 3549,
   i386_optab + 3550,
-  i386_optab + 3551,
   i386_optab + 3552,
-  i386_optab + 3553,
-  i386_optab + 3554,
   i386_optab + 3555,
-  i386_optab + 3556,
   i386_optab + 3557,
   i386_optab + 3558,
   i386_optab + 3559,
-  i386_optab + 3560,
   i386_optab + 3561,
-  i386_optab + 3562,
   i386_optab + 3563,
   i386_optab + 3564,
   i386_optab + 3565,
@@ -38095,13 +40046,9 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3567,
   i386_optab + 3568,
   i386_optab + 3569,
-  i386_optab + 3570,
   i386_optab + 3571,
-  i386_optab + 3572,
   i386_optab + 3573,
-  i386_optab + 3574,
   i386_optab + 3575,
-  i386_optab + 3576,
   i386_optab + 3577,
   i386_optab + 3578,
   i386_optab + 3579,
@@ -38112,24 +40059,14 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3584,
   i386_optab + 3585,
   i386_optab + 3586,
-  i386_optab + 3587,
   i386_optab + 3588,
-  i386_optab + 3589,
   i386_optab + 3590,
   i386_optab + 3591,
-  i386_optab + 3592,
   i386_optab + 3593,
-  i386_optab + 3594,
   i386_optab + 3595,
   i386_optab + 3596,
-  i386_optab + 3597,
-  i386_optab + 3598,
-  i386_optab + 3599,
-  i386_optab + 3600,
   i386_optab + 3601,
-  i386_optab + 3602,
   i386_optab + 3603,
-  i386_optab + 3604,
   i386_optab + 3605,
   i386_optab + 3606,
   i386_optab + 3607,
@@ -38138,56 +40075,69 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3610,
   i386_optab + 3611,
   i386_optab + 3612,
-  i386_optab + 3613,
+  i386_optab + 3614,
   i386_optab + 3616,
   i386_optab + 3617,
   i386_optab + 3618,
+  i386_optab + 3619,
   i386_optab + 3621,
-  i386_optab + 3622,
-  i386_optab + 3623,
-  i386_optab + 3625,
-  i386_optab + 3626,
+  i386_optab + 3624,
   i386_optab + 3627,
-  i386_optab + 3628,
   i386_optab + 3630,
-  i386_optab + 3631,
   i386_optab + 3632,
   i386_optab + 3633,
+  i386_optab + 3634,
   i386_optab + 3635,
   i386_optab + 3636,
   i386_optab + 3637,
   i386_optab + 3638,
+  i386_optab + 3639,
+  i386_optab + 3640,
   i386_optab + 3641,
   i386_optab + 3642,
   i386_optab + 3643,
   i386_optab + 3644,
   i386_optab + 3645,
+  i386_optab + 3646,
+  i386_optab + 3647,
   i386_optab + 3648,
+  i386_optab + 3649,
+  i386_optab + 3650,
   i386_optab + 3651,
+  i386_optab + 3652,
   i386_optab + 3654,
-  i386_optab + 3657,
+  i386_optab + 3656,
+  i386_optab + 3658,
   i386_optab + 3660,
-  i386_optab + 3661,
   i386_optab + 3662,
-  i386_optab + 3663,
   i386_optab + 3664,
   i386_optab + 3666,
   i386_optab + 3668,
-  i386_optab + 3669,
   i386_optab + 3670,
-  i386_optab + 3671,
+  i386_optab + 3672,
+  i386_optab + 3673,
   i386_optab + 3674,
+  i386_optab + 3675,
+  i386_optab + 3676,
   i386_optab + 3677,
+  i386_optab + 3678,
+  i386_optab + 3679,
   i386_optab + 3680,
+  i386_optab + 3681,
+  i386_optab + 3682,
   i386_optab + 3683,
+  i386_optab + 3684,
+  i386_optab + 3685,
   i386_optab + 3686,
   i386_optab + 3687,
   i386_optab + 3688,
   i386_optab + 3689,
+  i386_optab + 3690,
   i386_optab + 3691,
   i386_optab + 3692,
   i386_optab + 3693,
   i386_optab + 3694,
+  i386_optab + 3695,
   i386_optab + 3696,
   i386_optab + 3697,
   i386_optab + 3698,
@@ -38232,9 +40182,147 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3737,
   i386_optab + 3738,
   i386_optab + 3739,
+  i386_optab + 3740,
   i386_optab + 3741,
   i386_optab + 3742,
   i386_optab + 3743,
+  i386_optab + 3744,
+  i386_optab + 3745,
+  i386_optab + 3746,
+  i386_optab + 3747,
+  i386_optab + 3748,
+  i386_optab + 3749,
+  i386_optab + 3750,
+  i386_optab + 3751,
+  i386_optab + 3752,
+  i386_optab + 3753,
+  i386_optab + 3754,
+  i386_optab + 3755,
+  i386_optab + 3756,
+  i386_optab + 3757,
+  i386_optab + 3758,
+  i386_optab + 3759,
+  i386_optab + 3760,
+  i386_optab + 3761,
+  i386_optab + 3762,
+  i386_optab + 3763,
+  i386_optab + 3764,
+  i386_optab + 3765,
+  i386_optab + 3766,
+  i386_optab + 3767,
+  i386_optab + 3768,
+  i386_optab + 3769,
+  i386_optab + 3770,
+  i386_optab + 3771,
+  i386_optab + 3772,
+  i386_optab + 3773,
+  i386_optab + 3774,
+  i386_optab + 3775,
+  i386_optab + 3776,
+  i386_optab + 3777,
+  i386_optab + 3778,
+  i386_optab + 3779,
+  i386_optab + 3780,
+  i386_optab + 3781,
+  i386_optab + 3782,
+  i386_optab + 3783,
+  i386_optab + 3784,
+  i386_optab + 3787,
+  i386_optab + 3788,
+  i386_optab + 3789,
+  i386_optab + 3792,
+  i386_optab + 3793,
+  i386_optab + 3794,
+  i386_optab + 3796,
+  i386_optab + 3797,
+  i386_optab + 3798,
+  i386_optab + 3799,
+  i386_optab + 3801,
+  i386_optab + 3802,
+  i386_optab + 3803,
+  i386_optab + 3804,
+  i386_optab + 3806,
+  i386_optab + 3807,
+  i386_optab + 3808,
+  i386_optab + 3809,
+  i386_optab + 3812,
+  i386_optab + 3813,
+  i386_optab + 3814,
+  i386_optab + 3815,
+  i386_optab + 3816,
+  i386_optab + 3819,
+  i386_optab + 3822,
+  i386_optab + 3825,
+  i386_optab + 3828,
+  i386_optab + 3831,
+  i386_optab + 3832,
+  i386_optab + 3833,
+  i386_optab + 3834,
+  i386_optab + 3835,
+  i386_optab + 3837,
+  i386_optab + 3839,
+  i386_optab + 3840,
+  i386_optab + 3841,
+  i386_optab + 3842,
+  i386_optab + 3845,
+  i386_optab + 3848,
+  i386_optab + 3851,
+  i386_optab + 3854,
+  i386_optab + 3857,
+  i386_optab + 3858,
+  i386_optab + 3859,
+  i386_optab + 3860,
+  i386_optab + 3862,
+  i386_optab + 3863,
+  i386_optab + 3864,
+  i386_optab + 3865,
+  i386_optab + 3867,
+  i386_optab + 3868,
+  i386_optab + 3869,
+  i386_optab + 3870,
+  i386_optab + 3871,
+  i386_optab + 3872,
+  i386_optab + 3873,
+  i386_optab + 3875,
+  i386_optab + 3877,
+  i386_optab + 3879,
+  i386_optab + 3881,
+  i386_optab + 3883,
+  i386_optab + 3885,
+  i386_optab + 3887,
+  i386_optab + 3889,
+  i386_optab + 3891,
+  i386_optab + 3893,
+  i386_optab + 3895,
+  i386_optab + 3897,
+  i386_optab + 3899,
+  i386_optab + 3901,
+  i386_optab + 3903,
+  i386_optab + 3905,
+  i386_optab + 3907,
+  i386_optab + 3909,
+  i386_optab + 3911,
+  i386_optab + 3913,
+  i386_optab + 3915,
+  i386_optab + 3917,
+  i386_optab + 3919,
+  i386_optab + 3921,
+  i386_optab + 3923,
+  i386_optab + 3925,
+  i386_optab + 3927,
+  i386_optab + 3929,
+  i386_optab + 3931,
+  i386_optab + 3933,
+  i386_optab + 3934,
+  i386_optab + 3935,
+  i386_optab + 3936,
+  i386_optab + 3938,
+  i386_optab + 3940,
+  i386_optab + 3942,
+  i386_optab + 3944,
+  i386_optab + 3946,
+  i386_optab + 3947,
+  i386_optab + 3948,
 };
 
 /* i386 mnemonics table.  */
@@ -40218,6 +42306,7 @@ const char i386_mnemonics[] =
   "\0""rexyz"
   "\0""rexxyz"
   "\0""{disp32}"
+  "\0""{rex2}"
   "\0""{vex2}"
   "\0""{vex3}"
   "\0""{disp16}"
@@ -40331,6 +42420,70 @@ static const reg_entry i386_regtab[] =
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	0, 0, 0, 0, 0, 0 } },
     RegRex|RegRex64, 7, { Dw2Inval, Dw2Inval } },
+  { "r16b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 0, { Dw2Inval, Dw2Inval } },
+  { "r17b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 1, { Dw2Inval, Dw2Inval } },
+  { "r18b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 2, { Dw2Inval, Dw2Inval } },
+  { "r19b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 3, { Dw2Inval, Dw2Inval } },
+  { "r20b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 4, { Dw2Inval, Dw2Inval } },
+  { "r21b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 5, { Dw2Inval, Dw2Inval } },
+  { "r22b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 6, { Dw2Inval, Dw2Inval } },
+  { "r23b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64, 7, { Dw2Inval, Dw2Inval } },
+  { "r24b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 0, { Dw2Inval, Dw2Inval } },
+  { "r25b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 1, { Dw2Inval, Dw2Inval } },
+  { "r26b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 2, { Dw2Inval, Dw2Inval } },
+  { "r27b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 3, { Dw2Inval, Dw2Inval } },
+  { "r28b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 4, { Dw2Inval, Dw2Inval } },
+  { "r29b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 5, { Dw2Inval, Dw2Inval } },
+  { "r30b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 6, { Dw2Inval, Dw2Inval } },
+  { "r31b",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex64|RegRex, 7, { Dw2Inval, Dw2Inval } },
   { "ax",
     { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	0, 0, 0, 0, 0, 0 } },
@@ -40395,6 +42548,70 @@ static const reg_entry i386_regtab[] =
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	0, 0, 0, 0, 0, 0 } },
     RegRex, 7, { Dw2Inval, Dw2Inval } },
+  { "r16w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 0, { Dw2Inval, Dw2Inval } },
+  { "r17w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 1, { Dw2Inval, Dw2Inval } },
+  { "r18w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 2, { Dw2Inval, Dw2Inval } },
+  { "r19w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 3, { Dw2Inval, Dw2Inval } },
+  { "r20w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 4, { Dw2Inval, Dw2Inval } },
+  { "r21w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 5, { Dw2Inval, Dw2Inval } },
+  { "r22w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 6, { Dw2Inval, Dw2Inval } },
+  { "r23w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 7, { Dw2Inval, Dw2Inval } },
+  { "r24w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 0, { Dw2Inval, Dw2Inval } },
+  { "r25w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 1, { Dw2Inval, Dw2Inval } },
+  { "r26w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 2, { Dw2Inval, Dw2Inval } },
+  { "r27w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 3, { Dw2Inval, Dw2Inval } },
+  { "r28w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 4, { Dw2Inval, Dw2Inval } },
+  { "r29w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 5, { Dw2Inval, Dw2Inval } },
+  { "r30w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 6, { Dw2Inval, Dw2Inval } },
+  { "r31w",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 7, { Dw2Inval, Dw2Inval } },
   { "eax",
     { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
 	0, 0, 0, 0, 0, 0 } },
@@ -40459,6 +42676,70 @@ static const reg_entry i386_regtab[] =
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
 	0, 0, 0, 0, 0, 0 } },
     RegRex, 7, { Dw2Inval, Dw2Inval } },
+  { "r16d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 0, { Dw2Inval, Dw2Inval } },
+  { "r17d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 1, { Dw2Inval, Dw2Inval } },
+  { "r18d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 2, { Dw2Inval, Dw2Inval } },
+  { "r19d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 3, { Dw2Inval, Dw2Inval } },
+  { "r20d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 4, { Dw2Inval, Dw2Inval } },
+  { "r21d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 5, { Dw2Inval, Dw2Inval } },
+  { "r22d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 6, { Dw2Inval, Dw2Inval } },
+  { "r23d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 7, { Dw2Inval, Dw2Inval } },
+  { "r24d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 0, { Dw2Inval, Dw2Inval } },
+  { "r25d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 1, { Dw2Inval, Dw2Inval } },
+  { "r26d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 2, { Dw2Inval, Dw2Inval } },
+  { "r27d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 3, { Dw2Inval, Dw2Inval } },
+  { "r28d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 4, { Dw2Inval, Dw2Inval } },
+  { "r29d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 5, { Dw2Inval, Dw2Inval } },
+  { "r30d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 6, { Dw2Inval, Dw2Inval } },
+  { "r31d",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 7, { Dw2Inval, Dw2Inval } },
   { "rax",
     { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
 	0, 0, 0, 0, 0, 0 } },
@@ -40523,6 +42804,70 @@ static const reg_entry i386_regtab[] =
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
 	0, 0, 0, 0, 0, 0 } },
     RegRex, 7, { Dw2Inval, 15 } },
+  { "r16",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 0, { Dw2Inval, 130 } },
+  { "r17",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 1, { Dw2Inval, 131 } },
+  { "r18",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 2, { Dw2Inval, 132 } },
+  { "r19",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 3, { Dw2Inval, 133 } },
+  { "r20",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 4, { Dw2Inval, 134 } },
+  { "r21",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 5, { Dw2Inval, 135 } },
+  { "r22",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 6, { Dw2Inval, 136 } },
+  { "r23",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2, 7, { Dw2Inval, 137 } },
+  { "r24",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 0, { Dw2Inval, 138 } },
+  { "r25",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 1, { Dw2Inval, 139 } },
+  { "r26",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 2, { Dw2Inval, 140 } },
+  { "r27",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 3, { Dw2Inval, 141 } },
+  { "r28",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 4, { Dw2Inval, 142 } },
+  { "r29",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 5, { Dw2Inval, 143 } },
+  { "r30",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 6, { Dw2Inval, 144 } },
+  { "r31",
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	0, 0, 0, 0, 0, 0 } },
+    RegRex2|RegRex, 7, { Dw2Inval, 145 } },
   { "k0",
     { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	0, 0, 0, 0, 0, 0 } },
-- 
2.31.1


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

* [PATCH 5/8] [v2] Support APX NDD optimized encoding.
  2023-09-28  9:29   ` Jan Beulich
  2023-10-23  2:57     ` Hu, Lin1
  2023-10-23  3:07     ` [PATCH-V2] " Hu, Lin1
@ 2023-10-23  3:30     ` Hu, Lin1
  2023-10-23  7:26       ` Jan Beulich
  2 siblings, 1 reply; 91+ messages in thread
From: Hu, Lin1 @ 2023-10-23  3:30 UTC (permalink / raw)
  To: binutils; +Cc: JBeulich, hongjiu.lu

The new version of PATCH has been adjusted mainly based on comments.

This patch aims to optimize:

add %r16, %r15, %r15 -> add %r16, %r15

gas/ChangeLog:

	* config/tc-i386.c (optimize_NDD_to_nonNDD): New function.
	(match_template): If we can optimzie APX NDD insns, so rematch
	template.
	* testsuite/gas/i386/x86-64.exp: Add test.
	* testsuite/gas/i386/x86-64-apx-ndd-optimize.d: New test.
	* testsuite/gas/i386/x86-64-apx-ndd-optimize.s: Ditto.
---
 gas/config/tc-i386.c                          |    45 +
 .../gas/i386/x86-64-apx-ndd-optimize.d        |   124 +
 .../gas/i386/x86-64-apx-ndd-optimize.s        |   118 +
 gas/testsuite/gas/i386/x86-64.exp             |     1 +
 opcodes/i386-opc.tbl                          |    22 +-
 8 files changed, 11414 insertions(+), 8754 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 5a40fdcce40..5e6bb5435e3 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7186,6 +7186,43 @@ check_EgprOperands (const insn_template *t)
   return 0;
 }
 
+/* Optimize APX NDD insns to non-NDD insns.  */
+
+static bool
+optimize_NDD_to_nonNDD (const insn_template *t)
+{
+  if (t->opcode_modifier.vexvvvv
+      && t->opcode_space == SPACE_EVEXMAP4
+      && i.reg_operands >= 2
+      && i.types[i.operands - 1].bitfield.class == Reg)
+    {
+      unsigned int readonly_var = ~0;
+      unsigned int dest = i.operands - 1;
+      unsigned int src1 = (i.operands > 2) ? i.operands - 2 : 0;
+      unsigned int src2 = (i.operands > 3) ? i.operands - 3 : 0;
+
+      if (i.types[src1].bitfield.class == Reg
+	  && i.op[src1].regs == i.op[dest].regs)
+	readonly_var = src2;
+      /* adcx, adox and imul don't have D bit.  */
+      else if (i.types[src2].bitfield.class == Reg
+	       && i.op[src2].regs == i.op[dest].regs
+	       && t->opcode_modifier.commutative)
+	readonly_var = src1;
+      if (readonly_var != (unsigned int) ~0)
+	{
+	  --i.operands;
+	  --i.reg_operands;
+	  --i.tm.operands;
+
+	  if (readonly_var != src2)
+	    swap_2_operands (readonly_var, src2);
+	  return 1;
+	}
+    }
+  return 0;
+}
+
 /* Helper function for the progress() macro in match_template().  */
 static INLINE enum i386_error progress (enum i386_error new,
 					enum i386_error last,
@@ -7706,6 +7743,14 @@ match_template (char mnem_suffix)
 	  i.memshift = memshift;
 	}
 
+      /* If we can optimize a NDD insn to non-NDD insn, like
+	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
+      if (optimize == 1 && optimize_NDD_to_nonNDD (t))
+	{
+	  t = current_templates->start - 1;
+	  continue;
+	}
+
       /* We've found a match; break out of loop.  */
       break;
     }
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
new file mode 100644
index 00000000000..f23b2b127b6
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
@@ -0,0 +1,124 @@
+#as: -O1
+#objdump: -drw
+#name: x86-64 APX NDD optimized encoding
+#source: x86-64-apx-ndd-optimize.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*d5 19 ff c7          	inc    %r31
+\s*[a-f0-9]+:\s*d5 11 fe c7          	inc    %r31b
+\s*[a-f0-9]+:\s*d5 4d 01 f8          	add    %r31,%r8
+\s*[a-f0-9]+:\s*d5 45 00 f8          	add    %r31b,%r8b
+\s*[a-f0-9]+:\s*d5 4d 01 f8          	add    %r31,%r8
+\s*[a-f0-9]+:\s*d5 1d 03 c7          	add    %r31,%r8
+\s*[a-f0-9]+:\s*d5 4d 03 38          	add    \(%r8\),%r31
+\s*[a-f0-9]+:\s*d5 1d 03 07          	add    \(%r31\),%r8
+\s*[a-f0-9]+:\s*49 81 c7 33 44 34 12 	add    \$0x12344433,%r15
+\s*[a-f0-9]+:\s*49 81 c0 11 22 33 f4 	add    \$0xfffffffff4332211,%r8
+\s*[a-f0-9]+:\s*d5 18 ff c9          	dec    %r17
+\s*[a-f0-9]+:\s*d5 10 fe c9          	dec    %r17b
+\s*[a-f0-9]+:\s*d5 18 f7 d1          	not    %r17
+\s*[a-f0-9]+:\s*d5 10 f6 d1          	not    %r17b
+\s*[a-f0-9]+:\s*d5 18 f7 d9          	neg    %r17
+\s*[a-f0-9]+:\s*d5 10 f6 d9          	neg    %r17b
+\s*[a-f0-9]+:\s*d5 1c 29 f9          	sub    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 28 f9          	sub    %r15b,%r17b
+\s*[a-f0-9]+:\s*62 54 84 18 29 38    	sub    %r15,\(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 2b 04 07       	sub    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 ee 34 12 00 00 	sub    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 19 f9          	sbb    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 18 f9          	sbb    %r15b,%r17b
+\s*[a-f0-9]+:\s*62 54 84 18 19 38    	sbb    %r15,\(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 1b 04 07       	sbb    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 de 34 12 00 00 	sbb    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 11 f9          	adc    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 10 f9          	adc    %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 13 38             	adc    \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 13 04 07       	adc    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 d6 34 12 00 00 	adc    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 09 f9          	or     %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 08 f9          	or     %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 0b 38             	or     \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 0b 04 07       	or     \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 ce 34 12 00 00 	or     \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 31 f9          	xor    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 30 f9          	xor    %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 33 38             	xor    \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 33 04 07       	xor    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 19 81 f6 34 12 00 00 	xor    \$0x1234,%r30
+\s*[a-f0-9]+:\s*d5 1c 21 f9          	and    %r15,%r17
+\s*[a-f0-9]+:\s*d5 14 20 f9          	and    %r15b,%r17b
+\s*[a-f0-9]+:\s*4d 23 38             	and    \(%r8\),%r15
+\s*[a-f0-9]+:\s*d5 49 23 04 07       	and    \(%r15,%rax,1\),%r16
+\s*[a-f0-9]+:\s*d5 11 81 e6 34 12 00 00 	and    \$0x1234,%r30d
+\s*[a-f0-9]+:\s*d5 19 d1 cf          	ror    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 cf          	ror    %r31b
+\s*[a-f0-9]+:\s*49 c1 cc 02          	ror    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 cc 02          	ror    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 c7          	rol    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 c7          	rol    %r31b
+\s*[a-f0-9]+:\s*49 c1 c4 02          	rol    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 c4 02          	rol    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 df          	rcr    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 df          	rcr    %r31b
+\s*[a-f0-9]+:\s*49 c1 dc 02          	rcr    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 dc 02          	rcr    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 d7          	rcl    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 d7          	rcl    %r31b
+\s*[a-f0-9]+:\s*49 c1 d4 02          	rcl    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 d4 02          	rcl    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 e7          	shl    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 e7          	shl    %r31b
+\s*[a-f0-9]+:\s*49 c1 e4 02          	shl    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 e4 02          	shl    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 ff          	sar    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 ff          	sar    %r31b
+\s*[a-f0-9]+:\s*49 c1 fc 02          	sar    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 fc 02          	sar    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 e7          	shl    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 e7          	shl    %r31b
+\s*[a-f0-9]+:\s*49 c1 e4 02          	shl    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 e4 02          	shl    \$0x2,%r12b
+\s*[a-f0-9]+:\s*d5 19 d1 ef          	shr    %r31
+\s*[a-f0-9]+:\s*d5 11 d0 ef          	shr    %r31b
+\s*[a-f0-9]+:\s*49 c1 ec 02          	shr    \$0x2,%r12
+\s*[a-f0-9]+:\s*41 c0 ec 02          	shr    \$0x2,%r12b
+\s*[a-f0-9]+:\s*62 74 9c 18 24 20 01 	shld   \$0x1,%r12,\(%rax\),%r12
+\s*[a-f0-9]+:\s*4d 0f a4 c4 02       	shld   \$0x2,%r8,%r12
+\s*[a-f0-9]+:\s*62 74 b4 18 a5 08    	shld   %cl,%r9,\(%rax\),%r9
+\s*[a-f0-9]+:\s*d5 9c a5 e0          	shld   %cl,%r12,%r16
+\s*[a-f0-9]+:\s*62 7c 94 18 a5 2c 83 	shld   %cl,%r13,\(%r19,%rax,4\),%r13
+\s*[a-f0-9]+:\s*62 74 9c 18 2c 20 01 	shrd   \$0x1,%r12,\(%rax\),%r12
+\s*[a-f0-9]+:\s*4d 0f ac ec 01       	shrd   \$0x1,%r13,%r12
+\s*[a-f0-9]+:\s*62 74 b4 18 ad 08    	shrd   %cl,%r9,\(%rax\),%r9
+\s*[a-f0-9]+:\s*d5 9c ad e0          	shrd   %cl,%r12,%r16
+\s*[a-f0-9]+:\s*62 7c 94 18 ad 2c 83 	shrd   %cl,%r13,\(%r19,%rax,4\),%r13
+\s*[a-f0-9]+:\s*66 4d 0f 38 f6 c7    	adcx   %r15,%r8
+\s*[a-f0-9]+:\s*62 14 f9 08 66 04 3f 	adcx   \(%r15,%r31,1\),%r8
+\s*[a-f0-9]+:\s*66 4d 0f 38 f6 c1    	adcx   %r9,%r8
+\s*[a-f0-9]+:\s*f3 4d 0f 38 f6 c7    	adox   %r15,%r8
+\s*[a-f0-9]+:\s*62 14 fa 08 66 04 3f 	adox   \(%r15,%r31,1\),%r8
+\s*[a-f0-9]+:\s*f3 4d 0f 38 f6 c1    	adox   %r9,%r8
+\s*[a-f0-9]+:\s*67 0f 40 90 90 90 90 90 	cmovo  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 41 90 90 90 90 90 	cmovno -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 42 90 90 90 90 90 	cmovb  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 43 90 90 90 90 90 	cmovae -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 44 90 90 90 90 90 	cmove  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 45 90 90 90 90 90 	cmovne -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 46 90 90 90 90 90 	cmovbe -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 47 90 90 90 90 90 	cmova  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 48 90 90 90 90 90 	cmovs  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 49 90 90 90 90 90 	cmovns -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4a 90 90 90 90 90 	cmovp  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4b 90 90 90 90 90 	cmovnp -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4c 90 90 90 90 90 	cmovl  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4d 90 90 90 90 90 	cmovge -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4e 90 90 90 90 90 	cmovle -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f 4f 90 90 90 90 90 	cmovg  -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*67 0f af 90 09 09 09 00 	imul   0x90909\(%eax\),%edx
+\s*[a-f0-9]+:\s*d5 aa af 94 f8 09 09 00 00 	imul   0x909\(%rax,%r31,8\),%rdx
+\s*[a-f0-9]+:\s*48 0f af d0          	imul   %rax,%rdx
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
new file mode 100644
index 00000000000..0f5c15a2f9c
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
@@ -0,0 +1,118 @@
+# Check 64bit APX NDD instructions with optimized encoding
+
+	.allow_index_reg
+	.text
+_start:
+inc    %r31,%r31
+incb   %r31b,%r31b
+add    %r31,%r8,%r8
+addb   %r31b,%r8b,%r8b
+{store} add    %r31,%r8,%r8
+{load}  add    %r31,%r8,%r8
+add    %r31,(%r8),%r31
+add    (%r31),%r8,%r8
+add    $0x12344433,%r15,%r15
+add    $0xfffffffff4332211,%r8,%r8
+dec    %r17,%r17
+decb   %r17b,%r17b
+not    %r17,%r17
+notb   %r17b,%r17b
+neg    %r17,%r17
+negb   %r17b,%r17b
+sub    %r15,%r17,%r17
+subb   %r15b,%r17b,%r17b
+sub    %r15,(%r8),%r15
+sub    (%r15,%rax,1),%r16,%r16
+sub    $0x1234,%r30,%r30
+sbb    %r15,%r17,%r17
+sbbb   %r15b,%r17b,%r17b
+sbb    %r15,(%r8),%r15
+sbb    (%r15,%rax,1),%r16,%r16
+sbb    $0x1234,%r30,%r30
+adc    %r15,%r17,%r17
+adcb   %r15b,%r17b,%r17b
+adc    %r15,(%r8),%r15
+adc    (%r15,%rax,1),%r16,%r16
+adc    $0x1234,%r30,%r30
+or     %r15,%r17,%r17
+orb    %r15b,%r17b,%r17b
+or     %r15,(%r8),%r15
+or     (%r15,%rax,1),%r16,%r16
+or     $0x1234,%r30,%r30
+xor    %r15,%r17,%r17
+xorb   %r15b,%r17b,%r17b
+xor    %r15,(%r8),%r15
+xor    (%r15,%rax,1),%r16,%r16
+xor    $0x1234,%r30,%r30
+and    %r15,%r17,%r17
+andb   %r15b,%r17b,%r17b
+and    %r15,(%r8),%r15
+and    (%r15,%rax,1),%r16,%r16
+and    $0x1234,%r30,%r30
+ror    %r31,%r31
+rorb   %r31b,%r31b
+ror    $0x2,%r12,%r12
+rorb   $0x2,%r12b,%r12b
+rol    %r31,%r31
+rolb   %r31b,%r31b
+rol    $0x2,%r12,%r12
+rolb   $0x2,%r12b,%r12b
+rcr    %r31,%r31
+rcrb   %r31b,%r31b
+rcr    $0x2,%r12,%r12
+rcrb   $0x2,%r12b,%r12b
+rcl    %r31,%r31
+rclb   %r31b,%r31b
+rcl    $0x2,%r12,%r12
+rclb   $0x2,%r12b,%r12b
+shl    %r31,%r31
+shlb   %r31b,%r31b
+shl    $0x2,%r12,%r12
+shlb   $0x2,%r12b,%r12b
+sar    %r31,%r31
+sarb   %r31b,%r31b
+sar    $0x2,%r12,%r12
+sarb   $0x2,%r12b,%r12b
+shl    %r31,%r31
+shlb   %r31b,%r31b
+shl    $0x2,%r12,%r12
+shlb   $0x2,%r12b,%r12b
+shr    %r31,%r31
+shrb   %r31b,%r31b
+shr    $0x2,%r12,%r12
+shrb   $0x2,%r12b,%r12b
+shld   $0x1,%r12,(%rax),%r12
+shld   $0x2,%r8,%r12,%r12
+shld   %cl,%r9,(%rax),%r9
+shld   %cl,%r12,%r16,%r16
+shld   %cl,%r13,(%r19,%rax,4),%r13
+shrd   $0x1,%r12,(%rax),%r12
+shrd   $0x1,%r13,%r12,%r12
+shrd   %cl,%r9,(%rax),%r9
+shrd   %cl,%r12,%r16,%r16
+shrd   %cl,%r13,(%r19,%rax,4),%r13
+adcx   %r15,%r8,%r8
+adcx   (%r15,%r31,1),%r8,%r8
+adcx   %r8,%r9,%r8
+adox   %r15,%r8,%r8
+adox   (%r15,%r31,1),%r8,%r8
+adox   %r8,%r9,%r8
+cmovo  0x90909090(%eax),%edx,%edx
+cmovno 0x90909090(%eax),%edx,%edx
+cmovb  0x90909090(%eax),%edx,%edx
+cmovae 0x90909090(%eax),%edx,%edx
+cmove  0x90909090(%eax),%edx,%edx
+cmovne 0x90909090(%eax),%edx,%edx
+cmovbe 0x90909090(%eax),%edx,%edx
+cmova  0x90909090(%eax),%edx,%edx
+cmovs  0x90909090(%eax),%edx,%edx
+cmovns 0x90909090(%eax),%edx,%edx
+cmovp  0x90909090(%eax),%edx,%edx
+cmovnp 0x90909090(%eax),%edx,%edx
+cmovl  0x90909090(%eax),%edx,%edx
+cmovge 0x90909090(%eax),%edx,%edx
+cmovle 0x90909090(%eax),%edx,%edx
+cmovg  0x90909090(%eax),%edx,%edx
+imul   0x90909(%eax),%edx,%edx
+imul   0x909(%rax,%r31,8),%rdx,%rdx
+imul   %rdx,%rax,%rdx
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 07cb716d2a5..38fbed8a388 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -549,6 +549,7 @@ run_dump_test "x86-64-optimize-6"
 run_list_test "x86-64-optimize-7a" "-I${srcdir}/$subdir -march=+noavx -al"
 run_dump_test "x86-64-optimize-7b"
 run_list_test "x86-64-optimize-8" "-I${srcdir}/$subdir -march=+noavx2 -al"
+run_dump_test "x86-64-apx-ndd-optimize"
 run_dump_test "x86-64-align-branch-1a"
 run_dump_test "x86-64-align-branch-1b"
 run_dump_test "x86-64-align-branch-1c"
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index f68940b9b4a..3c255e79a91 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -145,6 +145,8 @@
 // The EVEX purpose of StaticRounding appears only together with SAE. Re-use
 // the bit to mark commutative VEX encodings where swapping the source
 // operands may allow to switch from 3-byte to 2-byte VEX encoding.
+// And re-use the bit to mark some NDD insns that swapping the source operands
+// may allow to switch from 3 operands to 2 operands.
 #define C StaticRounding
 
 #define FP 387|287|8087
@@ -166,6 +168,10 @@
 
 ### MARKER ###
 
+// Please don't add a NDD insn which may be optimized to a REX2 insn before the
+// mov. It may result that a good UB checker object the behavior
+// "template->start - 1" at the end of match_template.
+
 // 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, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
@@ -295,7 +301,7 @@ add, 0x0, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg3
 add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 add, 0x4, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 add, 0x80/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-add, 0x0, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+add, 0x0, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 add, 0x83/0, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 add, 0x80/0, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
 
@@ -339,7 +345,7 @@ and, 0x20, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|
 and, 0x83/4, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 and, 0x24, 0, W|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 and, 0x80/4, 0, W|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-and, 0x20, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+and, 0x20, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 and, 0x83/4, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 and, 0x80/4, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -347,7 +353,7 @@ or, 0x8, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|Re
 or, 0x83/1, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 or, 0xc, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 or, 0x80/1, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-or, 0x8, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+or, 0x8, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 or, 0x83/1, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 or, 0x80/1, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -355,7 +361,7 @@ xor, 0x30, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|Optimize, { Reg8|
 xor, 0x83/6, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 xor, 0x34, 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
 xor, 0x80/6, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-xor, 0x30, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+xor, 0x30, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4|Optimize, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 xor, 0x83/6, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 xor, 0x80/6, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -369,7 +375,7 @@ adc, 0x80/2, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Imm8|Imm16|Imm32|Imm32S, Reg8|R
 adc, 0x10, APX_F, D|W|CheckOperandSize|Modrm|EVex128|EVexMap4|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 adc, 0x83/2, APX_F, Modrm|EVex128|EVexMap4|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 adc, 0x80/2, APX_F, W|Modrm|EVex128|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
-adc, 0x10, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+adc, 0x10, APX_F, D|C|W|CheckOperandSize|Modrm|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 adc, 0x83/2, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 adc, 0x80/2, APX_F, W|Modrm|CheckOperandSize|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
@@ -412,7 +418,7 @@ cqto, 0x99, x64, Size64|NoSuf, {}
 mul, 0xf6/4, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 imul, 0xf6/5, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 imul, 0xfaf, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64 }
-imul, 0xaf, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
+imul, 0xaf, APX_F, C|Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 imul, 0x6b, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 imul, 0x69, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 // imul with 2 operands mimics imul with 3 by putting the register in
@@ -2126,10 +2132,10 @@ xstore, 0xfa7c0, PadLock, NoSuf|RepPrefixOk, {}
 // Multy-precision Add Carry, rdseed instructions.
 adcx, 0x660f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 adcx, 0x6666, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-adcx, 0x6666, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+adcx, 0x6666, ADX|APX_F, C|Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 adox, 0xf30f38f6, ADX, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
 adox, 0xf366, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
-adox, 0xf366, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+adox, 0xf366, ADX|APX_F, C|Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
 rdseed, 0xfc7/7, RdSeed, Modrm|NoSuf, { Reg16|Reg32|Reg64 }
 
 // SMAP instructions.
-- 
2.31.1


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

* Re: [PATCH 4/8] Support APX NDD
  2023-10-22 14:05     ` Cui, Lili
@ 2023-10-23  7:12       ` Jan Beulich
  2023-10-25  8:10         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-23  7:12 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

On 22.10.2023 16:05, Cui, Lili wrote:
>>> @@ -8825,6 +8853,9 @@ build_modrm_byte (void)
>>>        break;
>>>    if (v >= dest)
>>>      v = ~0;
>>> +  if (i.tm.opcode_space == SPACE_EVEXMAP4
>>> +      && i.tm.opcode_modifier.vexvvvv)
>>> +    v = dest;
>>>    if (i.tm.extension_opcode != None)
>>>      {
>>>        if (dest != source)
>>> @@ -9088,6 +9119,9 @@ build_modrm_byte (void)
>>>        set_rex_vrex (i.op[op].regs, REX_B, false);
>>>  	}
>>>
>>> +      if (i.tm.opcode_space == SPACE_EVEXMAP4
>>> +	  && i.tm.opcode_modifier.vexvvvv)
>>> +	dest--;
>>>        if (op == dest)
>>>  	dest = ~0;
>>>        if (op == source)
>>
>> These two changes are at the very least problematic with .insn, whose
>> behavior may not change. I'd also prefer if we could get away with just one
>> change to the function. Did you consider alternatives? We could re- widen
>> VexVVVV, such that the value 2 indicates that the destination is encoded there.
>> That then also has no chance of conflicting with .insn.
>>
> I added value 2 for NDD, if it's ok, I will create another patch to move  (i.tm.extension_opcode != None) to VexVVVVDEST branch, and use value 3 instead of SWAP_SOURCES, maybe name it VexVVVVSRC1, or just VexVVVVOP1, VexVVVVOP2 and VexVVVVOP3?

Hard to tell without actually seeing the code. What you did quote below
used just SRC/DEST.

>   /* How to encode VEX.vvvv:
>      0: VEX.vvvv must be 1111b.
>      1: VEX.vvvv encodes one of the register operands.
>      2: VEX.vvvv encodes as the dest register operands.
>    */
> #define VexVVVVSRC   1
> #define VexVVVVDEST  2
>   VexVVVV,

For readability maybe insert underscores (and if SRC remains un-numbered,
maybe also DST in place of DEST)?

>>> --- /dev/null
>>> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
>>> @@ -0,0 +1,156 @@
>>> +# Check 64bit APX NDD instructions with evex prefix encoding
>>> +
>>> +	.allow_index_reg
>>> +	.text
>>> +_start:
>>> +cmovge 0x90909090(%eax),%edx,%r8d
>>> +cmovle 0x90909090(%eax),%edx,%r8d
>>> +cmovg  0x90909090(%eax),%edx,%r8d
>>> +imul   0x90909(%eax),%edx,%r8d
>>> +imul   0x909(%rax,%r31,8),%rdx,%r25
>>
>> What about imul by immediate? The present spec is quite unclear there:
>> The insn page says {ND=ZU} and the table says 0/1 in the ND column.
>>
> 
> We don't support it yet, I put it in RFC.
> ...
> 2. Support APX ZU   -- In progress
> 3. Support APX CCMP and CTEST -- In progress
> ...
> 
> About 0/1 in the ND column, it means ZU can be 0/1.
> 
> IMUL with opcodes 0x69 and 0x6B in map 0 and SETcc instructions
> Although these instructions do not support NDD, the EVEX.ND bit is used to control whether its
> destination register has its upper bits (namely, bits [63:OSIZE]) zeroed when OSIZE is 8b or 16b.
> That is, if EVEX.ND = 1, the upper bits are always zeroed; otherwise, they keep the old values
> when OSIZE is 8b or 16b. For these instructions, EVEX.[V4,V3,V2,V1,V0] must be all zero.

So ZU indeed isn't just a typo there. For 32- and 64-bit forms, is EVEX.ND
then simply being ignored? The ZU really is meaningful only for 16-bit forms,
aiui ...

>>> +.byte 0x62,0xf4,0xfc,0x08,0xff,0xc0  #inc %rax .byte
>>> +0x62,0xf4,0xec,0x08,0xff,0xc0  #bad
>>
>> As before, please avoid .byte whenever possible. And please have a more
>> detailed comment as to what is being encoded, when .byte cannot be avoided.
>> Plus, if at all possible, have "bad" tests live in separate testcases from "good"
>> ones.
>>
> 
> This case wants to test that inc supports evex format without GPR32,  patch part II 1/6 will cover it. The first case has been removed and the second case has been added to x86-64-apx-evex-promoted-bad.s.

That's all fine, but still wants expressing with .insn rather than .byte,
if at all possible.

Jan

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

* Re: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-10-23  2:57     ` Hu, Lin1
@ 2023-10-23  7:23       ` Jan Beulich
  2023-10-23  7:50         ` Hu, Lin1
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-23  7:23 UTC (permalink / raw)
  To: Hu, Lin1; +Cc: Lu, Hongjiu, binutils, Cui, Lili

On 23.10.2023 04:57, Hu, Lin1 wrote:
> Thanks for your reviews, I have responded to your comments. The new patch will be attached to a subsequent email.

Up-front remark: Your way of replying makes it hard to spot what your
responses actually are. Many mail programs allow you to properly prefix
(by convention using '>') responded-to mail contents, it's usually
merely a matter of enabling that mode of operation.

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com> 
> Sent: Thursday, September 28, 2023 5:30 PM
> 
> On 19.09.2023 17:25, Cui, Lili wrote:
>> --- a/gas/config/tc-i386.c
>> +++ b/gas/config/tc-i386.c
>> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
>>    return 0;
>>  }
>>  
>> +/* Optimize APX NDD insns to non-NDD insns.  */
>> +
>> +static int
> 
> "bool" please when the function merely returns a yes/no indicator.
> 
> * Have modified.
> 
>> +optimize_NDD_to_nonNDD (const insn_template *t) {
>> +  if (t->opcode_modifier.vexvvvv
>> +      && t->opcode_space == SPACE_EVEXMAP4
>> +      && i.reg_operands >= 2
> 
> See the remark near the bottom of the changes to this file: This condition is likely insufficient, as
> - further insns allowing ND may not be treated this way (CCMPscc,
>   CTESTscc, and one of the CFCMOVcc forms at the very least),
> - {nf} uses will want excluding, as it would be merely a waste of
>   time to try to re-match with fewer operands.
> 
> * CCMPSCC and CTESTSCC’s vexvvvv will be false. I think one of the CFCMOVCC forms is same.

By "is same" do you mean "fits the optimization pattern here"?

>> @@ -7562,6 +7602,15 @@ match_template (char mnem_suffix)
>>  	     slip through to break.  */
>>  	}
>>  
>> +      /* If we can optimize a NDD insn to non-NDD insn, like
>> +	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
>> +      if (optimize_NDD_to_nonNDD (t))
> 
> I don't think such an optimization should be done without any form of -O.
> 
> As to the function name, maybe better optimize_NDD_to_REX2()?
> 
> * Refer to the optimization of VOP, temporarily set to O1 will be optimized.  If we use 32bit register, some instructions will be optimized from NDD to rex or legacy. Like cmovg  0x90909090(%eax),%edx,%edx, imul   %rdx,%rax,%rdx in our test.

What you you mean by saying "temporarily"?

>> --- /dev/null
>> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
>> @@ -0,0 +1,115 @@
>> +# Check 64bit APX NDD instructions with optimized encoding
>> +
>> +	.allow_index_reg
>> +	.text
>> +_start:
>> +inc    %ax,%ax
>> +inc    %eax,%eax
>> +inc    %rax,%rax
>> +inc    %r16,%r16
>> +add    %r31b,%r8b,%r8b
>> +add    %r31b,%r8b,%r31b
>> +addb    %r31b,%r8b,%r8b
>> +add    %r31,%r8,%r8
>> +addq    %r31,%r8,%r8
>> +add    %r31d,%r8d,%r8d
>> +addl    %r31d,%r8d,%r8d
>> +add    %r31w,%r8w,%r8w
>> +addw    %r31w,%r8w,%r8w
>> +{store} add    %r31,%r8,%r8
>> +{load}  add    %r31,%r8,%r8
>> +add    %r31,(%r8),%r31
>> +add    (%r31),%r8,%r8
>> +add    $0x12344433,%r15,%r15
>> +add    $0xfffffffff4332211,%r8,%r8
>> +dec    %r17,%r17
>> +not    %r17,%r17
>> +neg    %r17,%r17
>> +sub    %r15,%r17,%r17
>> +sub    %r15d,(%r8),%r15d
>> +sub    (%r15,%rax,1),%r16,%r16
>> +sub    $0x1234,%r30,%r30
>> +sbb    %r15,%r17,%r17
>> +sbb    %r15,(%r8),%r15
>> +sbb    (%r15,%rax,1),%r16,%r16
>> +sbb    $0x1234,%r30,%r30
>> +adc    %r15,%r17,%r17
>> +adc    %r15d,(%r8),%r15d
>> +adc    (%r15,%rax,1),%r16,%r16
>> +adc    $0x1234,%r30,%r30
>> +or    %r15,%r17,%r17
>> +or    %r15d,(%r8),%r15d
>> +or    (%r15,%rax,1),%r16,%r16
>> +or    $0x1234,%r30,%r30
>> +xor    %r15,%r17,%r17
>> +xor    %r15d,(%r8),%r15d
>> +xor    (%r15,%rax,1),%r16,%r16
>> +xor    $0x1234,%r30,%r30
>> +and    %r15,%r17,%r17
>> +and    %r15d,(%r8),%r15d
>> +and    (%r15,%rax,1),%r16,%r16
>> +and    $0x1234,%r30,%r30
>> +and    $0x1234,%r30
>> +ror    %r31,%r31
>> +rorb   %r31b,%r31b
> 
> Please be consistent with omitting (or having) suffixes (further up you simply test both variants, but that's not the case throughout ...
> 
>> +ror    $0x2,%r12,%r12
>> +rol    %r31,%r31
>> +rolb   %r31b,%r31b
>> +rol    $0x2,%r12,%r12
>> +rcr    %r31,%r31
>> +rcrb   %r31b,%r31b
>> +rcr    $0x2,%r12b,%r12b
>> +rcr    $0x2,%r12,%r12
>> +rcl    %r31,%r31
>> +rclb   %r31b,%r31b
>> +rcl    $0x2,%r12b,%r12b
>> +rcl    $0x2,%r12,%r12
>> +shl    %r31,%r31
>> +shlb   %r31b,%r31b
>> +shl    $0x2,%r12b,%r12b
>> +shl    $0x2,%r12,%r12
>> +sar    %r31,%r31
>> +sarb   %r31b,%r31b
>> +sar    $0x2,%r12b,%r12b
>> +sar    $0x2,%r12,%r12
>> +shl    %r31,%r31
>> +shlb   %r31b,%r31b
>> +shl    $0x2,%r12b,%r12b
>> +shl    $0x2,%r12,%r12
>> +shr    %r31,%r31
>> +shrb   %r31b,%r31b
> 
> ... here.
> 
> * Added suffixes to the command names, I don't understand very well what is suggested inside the parentheses, I just aligned most of the insns' test items.

In parentheses I've merely tried to make more clear what aspects I mean to
be considered for the result being consistent.

Jan

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

* Re: [PATCH 5/8] [v2] Support APX NDD optimized encoding.
  2023-10-23  3:30     ` [PATCH 5/8] [v2] " Hu, Lin1
@ 2023-10-23  7:26       ` Jan Beulich
  0 siblings, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-10-23  7:26 UTC (permalink / raw)
  To: Hu, Lin1; +Cc: hongjiu.lu, binutils

On 23.10.2023 05:30, Hu, Lin1 wrote:
> The new version of PATCH has been adjusted mainly based on comments.
> 
> This patch aims to optimize:
> 
> add %r16, %r15, %r15 -> add %r16, %r15

I'm sorry, but how is one to review a new version of patch 5 in a series
where all other patches are also in flux? I'll wait for a new version of
the complete series (possibly also folding the two earlier series into
one).

Jan

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

* RE: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-10-23  7:23       ` Jan Beulich
@ 2023-10-23  7:50         ` Hu, Lin1
  2023-10-23  8:15           ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Hu, Lin1 @ 2023-10-23  7:50 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils, Cui, Lili



> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Monday, October 23, 2023 3:24 PM
> To: Hu, Lin1 <lin1.hu@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org; Cui, Lili
> <lili.cui@intel.com>
> Subject: Re: [PATCH 5/8] Support APX NDD optimized encoding.
> 
> On 23.10.2023 04:57, Hu, Lin1 wrote:
> > Thanks for your reviews, I have responded to your comments. The new patch
> will be attached to a subsequent email.
> 
> Up-front remark: Your way of replying makes it hard to spot what your
> responses actually are. Many mail programs allow you to properly prefix (by
> convention using '>') responded-to mail contents, it's usually merely a matter of
> enabling that mode of operation.
> 
> > -----Original Message-----
> > From: Jan Beulich <jbeulich@suse.com>
> > Sent: Thursday, September 28, 2023 5:30 PM
> >
> > On 19.09.2023 17:25, Cui, Lili wrote:
> >> --- a/gas/config/tc-i386.c
> >> +++ b/gas/config/tc-i386.c
> >> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
> >>    return 0;
> >>  }
> >>
> >> +/* Optimize APX NDD insns to non-NDD insns.  */
> >> +
> >> +static int
> >
> > "bool" please when the function merely returns a yes/no indicator.
> >
> > * Have modified.
> >
> >> +optimize_NDD_to_nonNDD (const insn_template *t) {
> >> +  if (t->opcode_modifier.vexvvvv
> >> +      && t->opcode_space == SPACE_EVEXMAP4
> >> +      && i.reg_operands >= 2
> >
> > See the remark near the bottom of the changes to this file: This
> > condition is likely insufficient, as
> > - further insns allowing ND may not be treated this way (CCMPscc,
> >   CTESTscc, and one of the CFCMOVcc forms at the very least),
> > - {nf} uses will want excluding, as it would be merely a waste of
> >   time to try to re-match with fewer operands.
> >
> > * CCMPSCC and CTESTSCC’s vexvvvv will be false. I think one of the
> CFCMOVCC forms is same.
> 
> By "is same" do you mean "fits the optimization pattern here"?
> 

Because I didn't find any insn that allowing ND, but its vexvvvv is true in CFCMOVcc's table. I'm going to assume that you found it, but I don't see it. I believe its vexvvvv is false, too. So I say it is same as CCMPSCC and CTESTSCC.

> >> @@ -7562,6 +7602,15 @@ match_template (char mnem_suffix)
> >>  	     slip through to break.  */
> >>  	}
> >>
> >> +      /* If we can optimize a NDD insn to non-NDD insn, like
> >> +	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
> >> +      if (optimize_NDD_to_nonNDD (t))
> >
> > I don't think such an optimization should be done without any form of -O.
> >
> > As to the function name, maybe better optimize_NDD_to_REX2()?
> >
> > * Refer to the optimization of VOP, temporarily set to O1 will be optimized.  If
> we use 32bit register, some instructions will be optimized from NDD to rex or
> legacy. Like cmovg  0x90909090(%eax),%edx,%edx, imul   %rdx,%rax,%rdx in our
> test.
> 
> What you you mean by saying "temporarily"?

Since we don't have any relevant experience, we'd like to see if you have any opinion on this. If you haven't, users will use O1 to optimize their NDD insns.

> 
> >> --- /dev/null
> >> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
> >> @@ -0,0 +1,115 @@
> >> +# Check 64bit APX NDD instructions with optimized encoding
> >> +
> >> +	.allow_index_reg
> >> +	.text
> >> +_start:
> >> +inc    %ax,%ax
> >> +inc    %eax,%eax
> >> +inc    %rax,%rax
> >> +inc    %r16,%r16
> >> +add    %r31b,%r8b,%r8b
> >> +add    %r31b,%r8b,%r31b
> >> +addb    %r31b,%r8b,%r8b
> >> +add    %r31,%r8,%r8
> >> +addq    %r31,%r8,%r8
> >> +add    %r31d,%r8d,%r8d
> >> +addl    %r31d,%r8d,%r8d
> >> +add    %r31w,%r8w,%r8w
> >> +addw    %r31w,%r8w,%r8w
> >> +{store} add    %r31,%r8,%r8
> >> +{load}  add    %r31,%r8,%r8
> >> +add    %r31,(%r8),%r31
> >> +add    (%r31),%r8,%r8
> >> +add    $0x12344433,%r15,%r15
> >> +add    $0xfffffffff4332211,%r8,%r8
> >> +dec    %r17,%r17
> >> +not    %r17,%r17
> >> +neg    %r17,%r17
> >> +sub    %r15,%r17,%r17
> >> +sub    %r15d,(%r8),%r15d
> >> +sub    (%r15,%rax,1),%r16,%r16
> >> +sub    $0x1234,%r30,%r30
> >> +sbb    %r15,%r17,%r17
> >> +sbb    %r15,(%r8),%r15
> >> +sbb    (%r15,%rax,1),%r16,%r16
> >> +sbb    $0x1234,%r30,%r30
> >> +adc    %r15,%r17,%r17
> >> +adc    %r15d,(%r8),%r15d
> >> +adc    (%r15,%rax,1),%r16,%r16
> >> +adc    $0x1234,%r30,%r30
> >> +or    %r15,%r17,%r17
> >> +or    %r15d,(%r8),%r15d
> >> +or    (%r15,%rax,1),%r16,%r16
> >> +or    $0x1234,%r30,%r30
> >> +xor    %r15,%r17,%r17
> >> +xor    %r15d,(%r8),%r15d
> >> +xor    (%r15,%rax,1),%r16,%r16
> >> +xor    $0x1234,%r30,%r30
> >> +and    %r15,%r17,%r17
> >> +and    %r15d,(%r8),%r15d
> >> +and    (%r15,%rax,1),%r16,%r16
> >> +and    $0x1234,%r30,%r30
> >> +and    $0x1234,%r30
> >> +ror    %r31,%r31
> >> +rorb   %r31b,%r31b
> >
> > Please be consistent with omitting (or having) suffixes (further up you simply
> test both variants, but that's not the case throughout ...
> >
> >> +ror    $0x2,%r12,%r12
> >> +rol    %r31,%r31
> >> +rolb   %r31b,%r31b
> >> +rol    $0x2,%r12,%r12
> >> +rcr    %r31,%r31
> >> +rcrb   %r31b,%r31b
> >> +rcr    $0x2,%r12b,%r12b
> >> +rcr    $0x2,%r12,%r12
> >> +rcl    %r31,%r31
> >> +rclb   %r31b,%r31b
> >> +rcl    $0x2,%r12b,%r12b
> >> +rcl    $0x2,%r12,%r12
> >> +shl    %r31,%r31
> >> +shlb   %r31b,%r31b
> >> +shl    $0x2,%r12b,%r12b
> >> +shl    $0x2,%r12,%r12
> >> +sar    %r31,%r31
> >> +sarb   %r31b,%r31b
> >> +sar    $0x2,%r12b,%r12b
> >> +sar    $0x2,%r12,%r12
> >> +shl    %r31,%r31
> >> +shlb   %r31b,%r31b
> >> +shl    $0x2,%r12b,%r12b
> >> +shl    $0x2,%r12,%r12
> >> +shr    %r31,%r31
> >> +shrb   %r31b,%r31b
> >
> > ... here.
> >
> > * Added suffixes to the command names, I don't understand very well what is
> suggested inside the parentheses, I just aligned most of the insns' test items.
> 
> In parentheses I've merely tried to make more clear what aspects I mean to be
> considered for the result being consistent.

OK,  I'm tentatively assuming that my changes are well, and I'll talk to lili about putting our patches together to get back to you.
> 
> Jan

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

* Re: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-10-23  7:50         ` Hu, Lin1
@ 2023-10-23  8:15           ` Jan Beulich
  2023-10-24  1:40             ` Hu, Lin1
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-23  8:15 UTC (permalink / raw)
  To: Hu, Lin1; +Cc: Lu, Hongjiu, binutils, Cui, Lili

On 23.10.2023 09:50, Hu, Lin1 wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, October 23, 2023 3:24 PM
>>
>> On 23.10.2023 04:57, Hu, Lin1 wrote:
>>
>>> -----Original Message-----
>>> From: Jan Beulich <jbeulich@suse.com>
>>> Sent: Thursday, September 28, 2023 5:30 PM
>>>
>>> On 19.09.2023 17:25, Cui, Lili wrote:
>>>> --- a/gas/config/tc-i386.c
>>>> +++ b/gas/config/tc-i386.c
>>>> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
>>>>    return 0;
>>>>  }
>>>>
>>>> +/* Optimize APX NDD insns to non-NDD insns.  */
>>>> +
>>>> +static int
>>>
>>> "bool" please when the function merely returns a yes/no indicator.
>>>
>>> * Have modified.
>>>
>>>> +optimize_NDD_to_nonNDD (const insn_template *t) {
>>>> +  if (t->opcode_modifier.vexvvvv
>>>> +      && t->opcode_space == SPACE_EVEXMAP4
>>>> +      && i.reg_operands >= 2
>>>
>>> See the remark near the bottom of the changes to this file: This
>>> condition is likely insufficient, as
>>> - further insns allowing ND may not be treated this way (CCMPscc,
>>>   CTESTscc, and one of the CFCMOVcc forms at the very least),
>>> - {nf} uses will want excluding, as it would be merely a waste of
>>>   time to try to re-match with fewer operands.
>>>
>>> * CCMPSCC and CTESTSCC’s vexvvvv will be false. I think one of the
>> CFCMOVCC forms is same.
>>
>> By "is same" do you mean "fits the optimization pattern here"?
>>
> 
> Because I didn't find any insn that allowing ND, but its vexvvvv is true in CFCMOVcc's table. I'm going to assume that you found it, but I don't see it. I believe its vexvvvv is false, too. So I say it is same as CCMPSCC and CTESTSCC.

CFCMOVcc permits ND and uses EVEX.vvvv in one of its forms. It's unclear
to me whether it can be "optimized", though. In any event, I'd like to
revisit the condition here once this patch comes after all functional
ones, so we (I) have a clear picture of how all the insns are represented
in the opcode table.

>>>> @@ -7562,6 +7602,15 @@ match_template (char mnem_suffix)
>>>>  	     slip through to break.  */
>>>>  	}
>>>>
>>>> +      /* If we can optimize a NDD insn to non-NDD insn, like
>>>> +	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
>>>> +      if (optimize_NDD_to_nonNDD (t))
>>>
>>> I don't think such an optimization should be done without any form of -O.
>>>
>>> As to the function name, maybe better optimize_NDD_to_REX2()?
>>>
>>> * Refer to the optimization of VOP, temporarily set to O1 will be optimized.  If
>> we use 32bit register, some instructions will be optimized from NDD to rex or
>> legacy. Like cmovg  0x90909090(%eax),%edx,%edx, imul   %rdx,%rax,%rdx in our
>> test.
>>
>> What you you mean by saying "temporarily"?
> 
> Since we don't have any relevant experience, we'd like to see if you have any opinion on this. If you haven't, users will use O1 to optimize their NDD insns.

This kind of optimization is, aiui, mostly size optimization. Hence first and
foremost -Os ought to trigger it. Whether -O1 should also trigger it is up
for discussing.

Jan

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

* RE: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-10-23  8:15           ` Jan Beulich
@ 2023-10-24  1:40             ` Hu, Lin1
  2023-10-24  6:03               ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Hu, Lin1 @ 2023-10-24  1:40 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils, Cui, Lili

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Monday, October 23, 2023 4:15 PM
> To: Hu, Lin1 <lin1.hu@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org; Cui, Lili
> <lili.cui@intel.com>
> Subject: Re: [PATCH 5/8] Support APX NDD optimized encoding.
> 
> On 23.10.2023 09:50, Hu, Lin1 wrote:
> >> -----Original Message-----
> >> From: Jan Beulich <jbeulich@suse.com>
> >> Sent: Monday, October 23, 2023 3:24 PM
> >>
> >> On 23.10.2023 04:57, Hu, Lin1 wrote:
> >>
> >>> -----Original Message-----
> >>> From: Jan Beulich <jbeulich@suse.com>
> >>> Sent: Thursday, September 28, 2023 5:30 PM
> >>>
> >>> On 19.09.2023 17:25, Cui, Lili wrote:
> >>>> --- a/gas/config/tc-i386.c
> >>>> +++ b/gas/config/tc-i386.c
> >>>> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
> >>>>    return 0;
> >>>>  }
> >>>>
> >>>> +/* Optimize APX NDD insns to non-NDD insns.  */
> >>>> +
> >>>> +static int
> >>>
> >>> "bool" please when the function merely returns a yes/no indicator.
> >>>
> >>> * Have modified.
> >>>
> >>>> +optimize_NDD_to_nonNDD (const insn_template *t) {
> >>>> +  if (t->opcode_modifier.vexvvvv
> >>>> +      && t->opcode_space == SPACE_EVEXMAP4
> >>>> +      && i.reg_operands >= 2
> >>>
> >>> See the remark near the bottom of the changes to this file: This
> >>> condition is likely insufficient, as
> >>> - further insns allowing ND may not be treated this way (CCMPscc,
> >>>   CTESTscc, and one of the CFCMOVcc forms at the very least),
> >>> - {nf} uses will want excluding, as it would be merely a waste of
> >>>   time to try to re-match with fewer operands.
> >>>
> >>> * CCMPSCC and CTESTSCC’s vexvvvv will be false. I think one of the
> >> CFCMOVCC forms is same.
> >>
> >> By "is same" do you mean "fits the optimization pattern here"?
> >>
> >
> > Because I didn't find any insn that allowing ND, but its vexvvvv is true in
> CFCMOVcc's table. I'm going to assume that you found it, but I don't see it. I
> believe its vexvvvv is false, too. So I say it is same as CCMPSCC and CTESTSCC.
> 
> CFCMOVcc permits ND and uses EVEX.vvvv in one of its forms. It's unclear to me
> whether it can be "optimized", though. In any event, I'd like to revisit the
> condition here once this patch comes after all functional ones, so we (I) have a
> clear picture of how all the insns are represented in the opcode table.

Oh, you are right. It seems that CFCMOVcc doesn't support this optimization from the instruction behavior. But CFCMOVcc support doesn't in this round of work. At the moment, I thinks we can use "i.has_nf && i.tm.opcode_modifier.nf" to exclude CFCMOVcc and other NF insns.

> 
> >>>> @@ -7562,6 +7602,15 @@ match_template (char mnem_suffix)
> >>>>  	     slip through to break.  */
> >>>>  	}
> >>>>
> >>>> +      /* If we can optimize a NDD insn to non-NDD insn, like
> >>>> +	 add %r16, %r8, %r8 -> add %r16, %r8, then rematch template.  */
> >>>> +      if (optimize_NDD_to_nonNDD (t))
> >>>
> >>> I don't think such an optimization should be done without any form of -O.
> >>>
> >>> As to the function name, maybe better optimize_NDD_to_REX2()?
> >>>
> >>> * Refer to the optimization of VOP, temporarily set to O1 will be
> >>> optimized.  If
> >> we use 32bit register, some instructions will be optimized from NDD to rex or
> >> legacy. Like cmovg  0x90909090(%eax),%edx,%edx, imul   %rdx,%rax,%rdx in
> our
> >> test.
> >>
> >> What you you mean by saying "temporarily"?
> >
> > Since we don't have any relevant experience, we'd like to see if you have any
> opinion on this. If you haven't, users will use O1 to optimize their NDD insns.
> 
> This kind of optimization is, aiui, mostly size optimization. Hence first and
> foremost -Os ought to trigger it. Whether -O1 should also trigger it is up for
> discussing.

OK. Thanks for your idea.

> 
> Jan

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

* Re: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-10-24  1:40             ` Hu, Lin1
@ 2023-10-24  6:03               ` Jan Beulich
  2023-10-24  6:08                 ` Hu, Lin1
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-24  6:03 UTC (permalink / raw)
  To: Hu, Lin1; +Cc: Lu, Hongjiu, binutils, Cui, Lili

On 24.10.2023 03:40, Hu, Lin1 wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, October 23, 2023 4:15 PM
>>
>> On 23.10.2023 09:50, Hu, Lin1 wrote:
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Monday, October 23, 2023 3:24 PM
>>>>
>>>> On 23.10.2023 04:57, Hu, Lin1 wrote:
>>>>
>>>>> -----Original Message-----
>>>>> From: Jan Beulich <jbeulich@suse.com>
>>>>> Sent: Thursday, September 28, 2023 5:30 PM
>>>>>
>>>>> On 19.09.2023 17:25, Cui, Lili wrote:
>>>>>> --- a/gas/config/tc-i386.c
>>>>>> +++ b/gas/config/tc-i386.c
>>>>>> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template *t)
>>>>>>    return 0;
>>>>>>  }
>>>>>>
>>>>>> +/* Optimize APX NDD insns to non-NDD insns.  */
>>>>>> +
>>>>>> +static int
>>>>>
>>>>> "bool" please when the function merely returns a yes/no indicator.
>>>>>
>>>>> * Have modified.
>>>>>
>>>>>> +optimize_NDD_to_nonNDD (const insn_template *t) {
>>>>>> +  if (t->opcode_modifier.vexvvvv
>>>>>> +      && t->opcode_space == SPACE_EVEXMAP4
>>>>>> +      && i.reg_operands >= 2
>>>>>
>>>>> See the remark near the bottom of the changes to this file: This
>>>>> condition is likely insufficient, as
>>>>> - further insns allowing ND may not be treated this way (CCMPscc,
>>>>>   CTESTscc, and one of the CFCMOVcc forms at the very least),
>>>>> - {nf} uses will want excluding, as it would be merely a waste of
>>>>>   time to try to re-match with fewer operands.
>>>>>
>>>>> * CCMPSCC and CTESTSCC’s vexvvvv will be false. I think one of the
>>>> CFCMOVCC forms is same.
>>>>
>>>> By "is same" do you mean "fits the optimization pattern here"?
>>>>
>>>
>>> Because I didn't find any insn that allowing ND, but its vexvvvv is true in
>> CFCMOVcc's table. I'm going to assume that you found it, but I don't see it. I
>> believe its vexvvvv is false, too. So I say it is same as CCMPSCC and CTESTSCC.
>>
>> CFCMOVcc permits ND and uses EVEX.vvvv in one of its forms. It's unclear to me
>> whether it can be "optimized", though. In any event, I'd like to revisit the
>> condition here once this patch comes after all functional ones, so we (I) have a
>> clear picture of how all the insns are represented in the opcode table.
> 
> Oh, you are right. It seems that CFCMOVcc doesn't support this optimization from the instruction behavior. But CFCMOVcc support doesn't in this round of work. At the moment, I thinks we can use "i.has_nf && i.tm.opcode_modifier.nf" to exclude CFCMOVcc and other NF insns.

Well, as said before - imo it would be best if the optimization patch
came after all functional ones.

Jan

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

* RE: [PATCH 5/8] Support APX NDD optimized encoding.
  2023-10-24  6:03               ` Jan Beulich
@ 2023-10-24  6:08                 ` Hu, Lin1
  0 siblings, 0 replies; 91+ messages in thread
From: Hu, Lin1 @ 2023-10-24  6:08 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils, Cui, Lili

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Tuesday, October 24, 2023 2:04 PM
> To: Hu, Lin1 <lin1.hu@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org; Cui, Lili
> <lili.cui@intel.com>
> Subject: Re: [PATCH 5/8] Support APX NDD optimized encoding.
> 
> On 24.10.2023 03:40, Hu, Lin1 wrote:
> >> -----Original Message-----
> >> From: Jan Beulich <jbeulich@suse.com>
> >> Sent: Monday, October 23, 2023 4:15 PM
> >>
> >> On 23.10.2023 09:50, Hu, Lin1 wrote:
> >>>> -----Original Message-----
> >>>> From: Jan Beulich <jbeulich@suse.com>
> >>>> Sent: Monday, October 23, 2023 3:24 PM
> >>>>
> >>>> On 23.10.2023 04:57, Hu, Lin1 wrote:
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Jan Beulich <jbeulich@suse.com>
> >>>>> Sent: Thursday, September 28, 2023 5:30 PM
> >>>>>
> >>>>> On 19.09.2023 17:25, Cui, Lili wrote:
> >>>>>> --- a/gas/config/tc-i386.c
> >>>>>> +++ b/gas/config/tc-i386.c
> >>>>>> @@ -7091,6 +7091,46 @@ check_EgprOperands (const insn_template
> *t)
> >>>>>>    return 0;
> >>>>>>  }
> >>>>>>
> >>>>>> +/* Optimize APX NDD insns to non-NDD insns.  */
> >>>>>> +
> >>>>>> +static int
> >>>>>
> >>>>> "bool" please when the function merely returns a yes/no indicator.
> >>>>>
> >>>>> * Have modified.
> >>>>>
> >>>>>> +optimize_NDD_to_nonNDD (const insn_template *t) {
> >>>>>> +  if (t->opcode_modifier.vexvvvv
> >>>>>> +      && t->opcode_space == SPACE_EVEXMAP4
> >>>>>> +      && i.reg_operands >= 2
> >>>>>
> >>>>> See the remark near the bottom of the changes to this file: This
> >>>>> condition is likely insufficient, as
> >>>>> - further insns allowing ND may not be treated this way (CCMPscc,
> >>>>>   CTESTscc, and one of the CFCMOVcc forms at the very least),
> >>>>> - {nf} uses will want excluding, as it would be merely a waste of
> >>>>>   time to try to re-match with fewer operands.
> >>>>>
> >>>>> * CCMPSCC and CTESTSCC’s vexvvvv will be false. I think one of the
> >>>> CFCMOVCC forms is same.
> >>>>
> >>>> By "is same" do you mean "fits the optimization pattern here"?
> >>>>
> >>>
> >>> Because I didn't find any insn that allowing ND, but its vexvvvv is
> >>> true in
> >> CFCMOVcc's table. I'm going to assume that you found it, but I don't
> >> see it. I believe its vexvvvv is false, too. So I say it is same as CCMPSCC and
> CTESTSCC.
> >>
> >> CFCMOVcc permits ND and uses EVEX.vvvv in one of its forms. It's
> >> unclear to me whether it can be "optimized", though. In any event,
> >> I'd like to revisit the condition here once this patch comes after
> >> all functional ones, so we (I) have a clear picture of how all the insns are
> represented in the opcode table.
> >
> > Oh, you are right. It seems that CFCMOVcc doesn't support this optimization
> from the instruction behavior. But CFCMOVcc support doesn't in this round of
> work. At the moment, I thinks we can use "i.has_nf &&
> i.tm.opcode_modifier.nf" to exclude CFCMOVcc and other NF insns.
> 
> Well, as said before - imo it would be best if the optimization patch came after
> all functional ones.

Yes, I'll release the v3 version of this patch after all functional patches are out.

> 
> Jan

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

* RE: [PATCH 4/8] Support APX NDD
  2023-09-28  7:57   ` Jan Beulich
  2023-10-22 14:57     ` Cui, Lili
@ 2023-10-24 11:39     ` Cui, Lili
  2023-10-24 11:58       ` Jan Beulich
  1 sibling, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-24 11:39 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

> Subject: Re: [PATCH 4/8] Support APX NDD
> 
> On 19.09.2023 17:25, Cui, Lili wrote:
> > --- a/opcodes/i386-dis-evex-prefix.h
> > +++ b/opcodes/i386-dis-evex-prefix.h
> > @@ -353,8 +353,8 @@
> >    /* PREFIX_EVEX_MAP4_66 */
> >    {
> >      { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
> > -    { "adoxS",	{ Gdq, Edq }, 0 },
> > -    { "adcxS",	{ Gdq, Edq }, 0 },
> > +    { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
> > +    { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },
> 
> With the OP_VEX() change moved to the earlier patch, you wouldn't need to
> alter again right away what was just added there.
> 

As I commented in another email, I want to move instructions like adcx into this NDD patch. Do you think it is ok?

> > --- a/opcodes/i386-dis-evex-reg.h
> > +++ b/opcodes/i386-dis-evex-reg.h
> > @@ -56,6 +56,105 @@
> >      { "blsmskS",	{ VexGdq, Edq }, 0 },
> >      { "blsiS",		{ VexGdq, Edq }, 0 },
> >    },
> > +  /* REG_EVEX_MAP4_80 */
> > +  {
> > +    { "addA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "orA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "adcA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "sbbA",	{ VexGb, Eb, Ib }, 0 },
> 
> Aren't these two and other adc/sbb entries required already in the earlier
> patch, for consistency with what you add there on the assembler side?
> 
> > +    { "andA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "subA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "xorA",	{ VexGb, Eb, Ib }, 0 },
> > +    { Bad_Opcode },
> > +  },
> > +  /* REG_EVEX_MAP4_81 */
> > +  {
> > +    { "addQ",	{ VexGv, Ev, Iv }, 0 },
> > +    { "orQ",	{ VexGv, Ev, Iv }, 0 },
> > +    { "adcQ",	{ VexGv, Ev, Iv }, 0 },
> > +    { "sbbQ",	{ VexGv, Ev, Iv }, 0 },
> > +    { "andQ",	{ VexGv, Ev, Iv }, 0 },
> > +    { "subQ",	{ VexGv, Ev, Iv }, 0 },
> > +    { "xorQ",	{ VexGv, Ev, Iv }, 0 },
> > +    { Bad_Opcode },
> > +  },
> > +  /* REG_EVEX_MAP4_83 */
> > +  {
> > +    { "addQ",	{ VexGv, Ev, sIb }, 0 },
> > +    { "orQ",	{ VexGv, Ev, sIb }, 0 },
> > +    { "adcQ",	{ VexGv, Ev, sIb }, 0 },
> > +    { "sbbQ",	{ VexGv, Ev, sIb }, 0 },
> > +    { "andQ",	{ VexGv, Ev, sIb }, 0 },
> > +    { "subQ",	{ VexGv, Ev, sIb }, 0 },
> > +    { "xorQ",	{ VexGv, Ev, sIb }, 0 },
> > +    { Bad_Opcode },
> > +  },
> 
> While these are needed because of the differences (from existing table entries
> we have) in the last entry (albeit I don't think those last entries need to
> actually be spelled out; you don't spell out trailing invalid entries further
> down, and we don't do so elsewhere either), ...

Done.

> 
> > +  /* REG_EVEX_MAP4_C0 */
> > +  {
> > +    { "rolA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "rorA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "rclA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "rcrA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "shlA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "shrA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "shlA",	{ VexGb, Eb, Ib }, 0 },
> > +    { "sarA",	{ VexGb, Eb, Ib }, 0 },
> > +  },
> > +  /* REG_EVEX_MAP4_C1 */
> > +  {
> > +    { "rolQ",	{ VexGv, Ev, Ib }, 0 },
> > +    { "rorQ",	{ VexGv, Ev, Ib }, 0 },
> > +    { "rclQ",	{ VexGv, Ev, Ib }, 0 },
> > +    { "rcrQ",	{ VexGv, Ev, Ib }, 0 },
> > +    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
> > +    { "shrQ",	{ VexGv, Ev, Ib }, 0 },
> > +    { "shlQ",	{ VexGv, Ev, Ib }, 0 },
> > +    { "sarQ",	{ VexGv, Ev, Ib }, 0 },
> > +  },
> > +  /* REG_EVEX_MAP4_D0 */
> > +  {
> > +    { "rolA",	{ VexGb, Eb, I1 }, 0 },
> > +    { "rorA",	{ VexGb, Eb, I1 }, 0 },
> > +    { "rclA",	{ VexGb, Eb, I1 }, 0 },
> > +    { "rcrA",	{ VexGb, Eb, I1 }, 0 },
> > +    { "shlA",	{ VexGb, Eb, I1 }, 0 },
> > +    { "shrA",	{ VexGb, Eb, I1 }, 0 },
> > +    { "shlA",	{ VexGb, Eb, I1 }, 0 },
> > +    { "sarA",	{ VexGb, Eb, I1 }, 0 },
> > +  },
> > +  /* REG_EVEX_MAP4_D1 */
> > +  {
> > +    { "rolQ",	{ VexGv, Ev, I1 }, 0 },
> > +    { "rorQ",	{ VexGv, Ev, I1 }, 0 },
> > +    { "rclQ",	{ VexGv, Ev, I1 }, 0 },
> > +    { "rcrQ",	{ VexGv, Ev, I1 }, 0 },
> > +    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
> > +    { "shrQ",	{ VexGv, Ev, I1 }, 0 },
> > +    { "shlQ",	{ VexGv, Ev, I1 }, 0 },
> > +    { "sarQ",	{ VexGv, Ev, I1 }, 0 },
> > +  },
> > +  /* REG_EVEX_MAP4_D2 */
> > +  {
> > +    { "rolA",	{ VexGb, Eb, CL }, 0 },
> > +    { "rorA",	{ VexGb, Eb, CL }, 0 },
> > +    { "rclA",	{ VexGb, Eb, CL }, 0 },
> > +    { "rcrA",	{ VexGb, Eb, CL }, 0 },
> > +    { "shlA",	{ VexGb, Eb, CL }, 0 },
> > +    { "shrA",	{ VexGb, Eb, CL }, 0 },
> > +    { "shlA",	{ VexGb, Eb, CL }, 0 },
> > +    { "sarA",	{ VexGb, Eb, CL }, 0 },
> > +  },
> > +  /* REG_EVEX_MAP4_D3 */
> > +  {
> > +    { "rolQ",	{ VexGv, Ev, CL }, 0 },
> > +    { "rorQ",	{ VexGv, Ev, CL }, 0 },
> > +    { "rclQ",	{ VexGv, Ev, CL }, 0 },
> > +    { "rcrQ",	{ VexGv, Ev, CL }, 0 },
> > +    { "shlQ",	{ VexGv, Ev, CL }, 0 },
> > +    { "shrQ",	{ VexGv, Ev, CL }, 0 },
> > +    { "shlQ",	{ VexGv, Ev, CL }, 0 },
> > +    { "sarQ",	{ VexGv, Ev, CL }, 0 },
> > +  },
> 
> ... do we really need all these new entries? OP_VEX() checks need_vex first
> thing, so simply adjusting and then re-using the existing entries would seem
> possible.
> 

Done.

> > @@ -9070,6 +9085,14 @@ get_valid_dis386 (const struct dis386 *dp,
> instr_info *ins)
> >  	  ins->rex &= ~REX_B;
> >  	  ins->rex2 &= ~REX_R;
> >  	}
> > +      if (ins->evex_type == evex_from_legacy)
> > +	{
> > +	  if (ins->vex.ll || ins->vex.zeroing
> > +	      || (!ins->vex.b && (ins->vex.register_specifier
> > +				  || !ins->vex.v)))
> > +	    return &bad_opcode;
> 
> Don't these checks also apply to evex_from_vex?

Oh, I've duplicated some of the checks in the above code and removed the duplicated parts.

     if (ins->evex_type == evex_from_legacy)
        {
          /* EVEX from legacy instructions, when the EVEX.ND bit is 0,
             all bits of EVEX.vvvv and EVEX.V' must be 1.  */
          if (!ins->vex.b && (ins->vex.register_specifier
                                  || !ins->vex.v))
            return &bad_opcode;
          ins->rex |= REX_OPCODE;
        }

      /* EVEX from legacy instructions require that EVEX.L’L, EVEX.z and the
         lower 2 bits of EVEX.aaa must be 0.
         EVEX from evex instrucions require that EVEX.L’L and the lower 2 bits of
         EVEX.aaa must be 0.  */
      if (ins->evex_type == evex_from_legacy || ins->evex_type == evex_from_vex)
        {
          if ((*ins->codep & 0x3) != 0
              || (*ins->codep >> 6 & 0x3) != 0
              || (ins->evex_type == evex_from_legacy
                  && (*ins->codep >> 5 & 0x1) != 0)
              || (ins->evex_type == evex_from_vex
                  && !ins->vex.b))
            return &bad_opcode;
        }
> 
> > +	  ins->rex |= REX_OPCODE;
> 
> This, otoh, may truly be evex_from_legacy-only (but I'm not entirely certain).
>

Added after separation.
 
> > @@ -9080,7 +9103,7 @@ get_valid_dis386 (const struct dis386 *dp,
> instr_info *ins)
> >  	return &err_opcode;
> >
> >        /* Set vector length.  */
> > -      if (ins->modrm.mod == 3 && ins->vex.b)
> > +      if (ins->modrm.mod == 3 && ins->vex.b && ins->evex_type ==
> > + evex_default)
> >  	ins->vex.length = 512;
> 
> Down from here, still in the same function, there's another vex.b check which I
> think also wants qualifying.
> 

Not found in this function, but found a place that needs to be qualified in print_insn.

          /* Check whether rounding control was enabled for an insn not
             supporting it.  */
          if (ins.modrm.mod == 3 && ins.vex.b
              && !(ins.evex_used & EVEX_b_used))
            {
              for (i = 0; i < MAX_OPERANDS; ++i)
                {
                  ins.obufp = ins.op_out[i];
                  if (*ins.obufp)
                    continue;
                  oappend (&ins, names_rounding[ins.vex.ll]);
                  oappend (&ins, "bad}");
                  break;
                }
            }

> > @@ -10994,7 +11017,7 @@ print_displacement (instr_info *ins,
> > bfd_signed_vma val)  static void  intel_operand_size (instr_info *ins,
> > int bytemode, int sizeflag)  {
> > -  if (ins->vex.b)
> > +  if (ins->vex.b && ins->evex_type != evex_from_legacy)
> 
> Wouldn't this better be ins->evex_type == evex_default, ...
> 

Done.

> > @@ -11928,7 +11951,8 @@ OP_E_memory (instr_info *ins, int bytemode,
> int sizeflag)
> >  	ins->vex.no_broadcast = true;
> >
> >        if (!ins->vex.no_broadcast
> > -	  && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used)))
> > +	  && (!ins->intel_syntax || !(ins->evex_used & EVEX_len_used))
> > +	  && ins->evex_type == evex_default)
> 
> ... just like you have it here?
> 
> However, for this change, doesn't this need moving to the enclosing if()?
> You should accidentally set EVEX_b_used here for APX insns.
> 

Sure, moved it.

> > @@ -13280,6 +13304,14 @@ OP_VEX (instr_info *ins, int bytemode, int
> sizeflag ATTRIBUTE_UNUSED)
> >    if (!ins->need_vex)
> >      return true;
> >
> > +  if (ins->evex_type == evex_from_legacy)
> > +    {
> > +      if (ins->vex.b)
> > +	ins->evex_used |= EVEX_b_used;
> > +      else
> > +	 return true;
> > +    }
> 
> When you reuse fields or definitions in places where their names don't match
> their purpose (the field dealt with here is "nd" after all, not "b"), a comment
> wants adding. There's also something odd with indentation here, but I
> suppose an if/else construct isn't needed in the first place.
> 
Added comment and adjusted the formatting, I think we need if/else like "adox " which supports EVEX.ND=0/1.

/* PREFIX_0F38F6 */
  {
    { "wrssK",  { M, Gdq }, 0 },
    { "adoxS",  { VexGdq, Gdq, Edq}, 0 },

adox, 0xf366, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
adox, 0xf366, ADX|APX_F, Modrm|CheckOperandSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|VexVVVVDest|EVex128|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }


Thanks,
Lili.



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

* Re: [PATCH 4/8] Support APX NDD
  2023-10-24 11:39     ` Cui, Lili
@ 2023-10-24 11:58       ` Jan Beulich
  2023-10-25 15:29         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-24 11:58 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

On 24.10.2023 13:39, Cui, Lili wrote:
>> Subject: Re: [PATCH 4/8] Support APX NDD
>>
>> On 19.09.2023 17:25, Cui, Lili wrote:
>>> --- a/opcodes/i386-dis-evex-prefix.h
>>> +++ b/opcodes/i386-dis-evex-prefix.h
>>> @@ -353,8 +353,8 @@
>>>    /* PREFIX_EVEX_MAP4_66 */
>>>    {
>>>      { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
>>> -    { "adoxS",	{ Gdq, Edq }, 0 },
>>> -    { "adcxS",	{ Gdq, Edq }, 0 },
>>> +    { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
>>> +    { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },
>>
>> With the OP_VEX() change moved to the earlier patch, you wouldn't need to
>> alter again right away what was just added there.
>>
> 
> As I commented in another email, I want to move instructions like adcx into this NDD patch. Do you think it is ok?

Yeah, having ND-capable insns in the ND patch makes sense. I don't care
overly much about the actual split. It wants to be half-way consistent,
and beyond that - as said - it helps if code/data added by earlier
patches doesn't need re-writing altogether in later ones.

>>> @@ -13280,6 +13304,14 @@ OP_VEX (instr_info *ins, int bytemode, int
>> sizeflag ATTRIBUTE_UNUSED)
>>>    if (!ins->need_vex)
>>>      return true;
>>>
>>> +  if (ins->evex_type == evex_from_legacy)
>>> +    {
>>> +      if (ins->vex.b)
>>> +	ins->evex_used |= EVEX_b_used;
>>> +      else
>>> +	 return true;
>>> +    }
>>
>> When you reuse fields or definitions in places where their names don't match
>> their purpose (the field dealt with here is "nd" after all, not "b"), a comment
>> wants adding. There's also something odd with indentation here, but I
>> suppose an if/else construct isn't needed in the first place.
>>
> Added comment and adjusted the formatting, I think we need if/else like "adox " which supports EVEX.ND=0/1.

You will need if(), sure, but I'm not convinced of "else". Constructs
like

    if (cond)
      return;
    else
      whatever;

bother me in general, as adding (even if just slightly) more mental load
for the reader. Just

    if (cond)
      return;
    whatever;

is all you need: Less text, less indentation. In the specific case
above yet another possibility may exist (without having actually tried
it):

  if (ins->evex_type == evex_from_legacy)
    {
      ins->evex_used |= EVEX_b_used;
      if (!ins->vex.b)
	 return true;
    }

I.e. this would be as long as setting EVEX_b_used without EVEX.b set
doesn't cause any issues.

Jan

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

* RE: [PATCH 4/8] Support APX NDD
  2023-10-23  7:12       ` Jan Beulich
@ 2023-10-25  8:10         ` Cui, Lili
  2023-10-25  8:47           ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-25  8:10 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

> Subject: Re: [PATCH 4/8] Support APX NDD
> 
> On 22.10.2023 16:05, Cui, Lili wrote:
> >>> @@ -8825,6 +8853,9 @@ build_modrm_byte (void)
> >>>        break;
> >>>    if (v >= dest)
> >>>      v = ~0;
> >>> +  if (i.tm.opcode_space == SPACE_EVEXMAP4
> >>> +      && i.tm.opcode_modifier.vexvvvv)
> >>> +    v = dest;
> >>>    if (i.tm.extension_opcode != None)
> >>>      {
> >>>        if (dest != source)
> >>> @@ -9088,6 +9119,9 @@ build_modrm_byte (void)
> >>>        set_rex_vrex (i.op[op].regs, REX_B, false);
> >>>  	}
> >>>
> >>> +      if (i.tm.opcode_space == SPACE_EVEXMAP4
> >>> +	  && i.tm.opcode_modifier.vexvvvv)
> >>> +	dest--;
> >>>        if (op == dest)
> >>>  	dest = ~0;
> >>>        if (op == source)
> >>
> >> These two changes are at the very least problematic with .insn, whose
> >> behavior may not change. I'd also prefer if we could get away with
> >> just one change to the function. Did you consider alternatives? We
> >> could re- widen VexVVVV, such that the value 2 indicates that the
> destination is encoded there.
> >> That then also has no chance of conflicting with .insn.
> >>
> > I added value 2 for NDD, if it's ok, I will create another patch to move
> (i.tm.extension_opcode != None) to VexVVVVDEST branch, and use value 3
> instead of SWAP_SOURCES, maybe name it VexVVVVSRC1, or just VexVVVVOP1,
> VexVVVVOP2 and VexVVVVOP3?
> 
> Hard to tell without actually seeing the code. What you did quote below used
> just SRC/DEST.
> 

Ok. Let review the current changes first.

> >   /* How to encode VEX.vvvv:
> >      0: VEX.vvvv must be 1111b.
> >      1: VEX.vvvv encodes one of the register operands.
> >      2: VEX.vvvv encodes as the dest register operands.
> >    */
> > #define VexVVVVSRC   1
> > #define VexVVVVDEST  2
> >   VexVVVV,
> 
> For readability maybe insert underscores (and if SRC remains un-numbered,
> maybe also DST in place of DEST)?

Done.

> 
> >>> --- /dev/null
> >>> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
> >>> @@ -0,0 +1,156 @@
> >>> +# Check 64bit APX NDD instructions with evex prefix encoding
> >>> +
> >>> +	.allow_index_reg
> >>> +	.text
> >>> +_start:
> >>> +cmovge 0x90909090(%eax),%edx,%r8d
> >>> +cmovle 0x90909090(%eax),%edx,%r8d
> >>> +cmovg  0x90909090(%eax),%edx,%r8d
> >>> +imul   0x90909(%eax),%edx,%r8d
> >>> +imul   0x909(%rax,%r31,8),%rdx,%r25
> >>
> >> What about imul by immediate? The present spec is quite unclear there:
> >> The insn page says {ND=ZU} and the table says 0/1 in the ND column.
> >>
> >
> > We don't support it yet, I put it in RFC.
> > ...
> > 2. Support APX ZU   -- In progress
> > 3. Support APX CCMP and CTEST -- In progress ...
> >
> > About 0/1 in the ND column, it means ZU can be 0/1.
> >
> > IMUL with opcodes 0x69 and 0x6B in map 0 and SETcc instructions
> > Although these instructions do not support NDD, the EVEX.ND bit is
> > used to control whether its destination register has its upper bits (namely,
> bits [63:OSIZE]) zeroed when OSIZE is 8b or 16b.
> > That is, if EVEX.ND = 1, the upper bits are always zeroed; otherwise,
> > they keep the old values when OSIZE is 8b or 16b. For these instructions,
> EVEX.[V4,V3,V2,V1,V0] must be all zero.
> 
> So ZU indeed isn't just a typo there. For 32- and 64-bit forms, is EVEX.ND then
> simply being ignored? The ZU really is meaningful only for 16-bit forms, aiui ...
> 

EVEX.ZU should be ignored for 32-bit and 64-bit forms. For imul (in spec 6.30 IMUL), EVEX.ND stands for ND or ZU. I think ZU makes sense for both the 16-bit form (imul) and the 8-bit form (setcc, I'm not sure if imul supports it yet).

> >>> +.byte 0x62,0xf4,0xfc,0x08,0xff,0xc0  #inc %rax .byte
> >>> +0x62,0xf4,0xec,0x08,0xff,0xc0  #bad
> >>
> >> As before, please avoid .byte whenever possible. And please have a
> >> more detailed comment as to what is being encoded, when .byte cannot be
> avoided.
> >> Plus, if at all possible, have "bad" tests live in separate testcases from
> "good"
> >> ones.
> >>
> >
> > This case wants to test that inc supports evex format without GPR32,  patch
> part II 1/6 will cover it. The first case has been removed and the second case
> has been added to x86-64-apx-evex-promoted-bad.s.
> 
> That's all fine, but still wants expressing with .insn rather than .byte, if at all
> possible.
> 

Got your point, for the first case we can use .insn instead, for the second case need .byte. 

Thanks,
Lili.

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

* Re: [PATCH 4/8] Support APX NDD
  2023-10-25  8:10         ` Cui, Lili
@ 2023-10-25  8:47           ` Jan Beulich
  2023-10-25 15:49             ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-25  8:47 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

On 25.10.2023 10:10, Cui, Lili wrote:
>> On 22.10.2023 16:05, Cui, Lili wrote:
>>>>> --- /dev/null
>>>>> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
>>>>> @@ -0,0 +1,156 @@
>>>>> +# Check 64bit APX NDD instructions with evex prefix encoding
>>>>> +
>>>>> +	.allow_index_reg
>>>>> +	.text
>>>>> +_start:
>>>>> +cmovge 0x90909090(%eax),%edx,%r8d
>>>>> +cmovle 0x90909090(%eax),%edx,%r8d
>>>>> +cmovg  0x90909090(%eax),%edx,%r8d
>>>>> +imul   0x90909(%eax),%edx,%r8d
>>>>> +imul   0x909(%rax,%r31,8),%rdx,%r25
>>>>
>>>> What about imul by immediate? The present spec is quite unclear there:
>>>> The insn page says {ND=ZU} and the table says 0/1 in the ND column.
>>>>
>>>
>>> We don't support it yet, I put it in RFC.
>>> ...
>>> 2. Support APX ZU   -- In progress
>>> 3. Support APX CCMP and CTEST -- In progress ...
>>>
>>> About 0/1 in the ND column, it means ZU can be 0/1.
>>>
>>> IMUL with opcodes 0x69 and 0x6B in map 0 and SETcc instructions
>>> Although these instructions do not support NDD, the EVEX.ND bit is
>>> used to control whether its destination register has its upper bits (namely,
>> bits [63:OSIZE]) zeroed when OSIZE is 8b or 16b.
>>> That is, if EVEX.ND = 1, the upper bits are always zeroed; otherwise,
>>> they keep the old values when OSIZE is 8b or 16b. For these instructions,
>> EVEX.[V4,V3,V2,V1,V0] must be all zero.
>>
>> So ZU indeed isn't just a typo there. For 32- and 64-bit forms, is EVEX.ND then
>> simply being ignored? The ZU really is meaningful only for 16-bit forms, aiui ...
>>
> 
> EVEX.ZU should be ignored for 32-bit and 64-bit forms. For imul (in spec 6.30 IMUL), EVEX.ND stands for ND or ZU.

In cases like this, where ignoring bits is kind of unexpected, the spec
would better say explicitly (on the instruction page) when a meaningless
bit is indeed ignored, rather than being reserved and causing #UD. Note
how even the text in the APX-EVEX-INT section leaves open (or at least
ambiguous, by not mentioning the case) whether SETcc with a memory
operand ignores EVEX.ND or causes #UD when the bit is set.

> I think ZU makes sense for both the 16-bit form (imul) and the 8-bit form (setcc, I'm not sure if imul supports it yet).

No, IMUL by immediate (or actually any IMUL with multiple operands) doesn't
support byte register operands. For SETcc the ZU aspect is pretty clear
and doesn't even need expressing by new syntax in (dis)assembly - you can
simply distinguish the two forms by using either 8-bit registers (no ZU)
or 32-/64-bit ones (with ZU). In principle that's possible with IMUL as
well, of course, but it may be deemed a little odd:

	imul	$17, %dx, %cx
	imul	$17, %dx, %ecx

Yet personally I'd still prefer this over adding e.g. {zu} on either the
mnemonic or the destination operand. Question (as with the way to express
{nf}) is how other assemblers are going to handle it. (Would be quite nice
if the spec could at least give more clear hints towards suggested syntax,
but that hadn't been the case already with the syntax extensions needed
for AVX512.)

Jan

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

* RE: [PATCH 4/8] Support APX NDD
  2023-10-24 11:58       ` Jan Beulich
@ 2023-10-25 15:29         ` Cui, Lili
  0 siblings, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-10-25 15:29 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

> Subject: Re: [PATCH 4/8] Support APX NDD
> 
> On 24.10.2023 13:39, Cui, Lili wrote:
> >> Subject: Re: [PATCH 4/8] Support APX NDD
> >>
> >> On 19.09.2023 17:25, Cui, Lili wrote:
> >>> --- a/opcodes/i386-dis-evex-prefix.h
> >>> +++ b/opcodes/i386-dis-evex-prefix.h
> >>> @@ -353,8 +353,8 @@
> >>>    /* PREFIX_EVEX_MAP4_66 */
> >>>    {
> >>>      { MOD_TABLE (MOD_EVEX_MAP4_66_PREFIX_0) },
> >>> -    { "adoxS",	{ Gdq, Edq }, 0 },
> >>> -    { "adcxS",	{ Gdq, Edq }, 0 },
> >>> +    { "adoxS",	{ VexGdq, Gdq, Edq }, 0 },
> >>> +    { "adcxS",	{ VexGdq, Gdq, Edq }, 0 },
> >>
> >> With the OP_VEX() change moved to the earlier patch, you wouldn't
> >> need to alter again right away what was just added there.
> >>
> >
> > As I commented in another email, I want to move instructions like adcx into
> this NDD patch. Do you think it is ok?
> 
> Yeah, having ND-capable insns in the ND patch makes sense. I don't care overly
> much about the actual split. It wants to be half-way consistent, and beyond
> that - as said - it helps if code/data added by earlier patches doesn't need re-
> writing altogether in later ones.
> 

Ok.

> >>> @@ -13280,6 +13304,14 @@ OP_VEX (instr_info *ins, int bytemode, int
> >> sizeflag ATTRIBUTE_UNUSED)
> >>>    if (!ins->need_vex)
> >>>      return true;
> >>>
> >>> +  if (ins->evex_type == evex_from_legacy)
> >>> +    {
> >>> +      if (ins->vex.b)
> >>> +	ins->evex_used |= EVEX_b_used;
> >>> +      else
> >>> +	 return true;
> >>> +    }
> >>
> >> When you reuse fields or definitions in places where their names
> >> don't match their purpose (the field dealt with here is "nd" after
> >> all, not "b"), a comment wants adding. There's also something odd
> >> with indentation here, but I suppose an if/else construct isn't needed in the
> first place.
> >>
> > Added comment and adjusted the formatting, I think we need if/else like
> "adox " which supports EVEX.ND=0/1.
> 
> You will need if(), sure, but I'm not convinced of "else". Constructs like
> 
>     if (cond)
>       return;
>     else
>       whatever;
> 
> bother me in general, as adding (even if just slightly) more mental load for the
> reader. Just
> 
>     if (cond)
>       return;
>     whatever;
> 
> is all you need: Less text, less indentation. In the specific case above yet
> another possibility may exist (without having actually tried
> it):
> 
>   if (ins->evex_type == evex_from_legacy)
>     {
>       ins->evex_used |= EVEX_b_used;
>       if (!ins->vex.b)
> 	 return true;
>     }
> 
> I.e. this would be as long as setting EVEX_b_used without EVEX.b set doesn't
> cause any issues.
> 

Done.

Thanks,
Lili.

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

* RE: [PATCH 4/8] Support APX NDD
  2023-10-25  8:47           ` Jan Beulich
@ 2023-10-25 15:49             ` Cui, Lili
  2023-10-25 15:59               ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-25 15:49 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

> Subject: Re: [PATCH 4/8] Support APX NDD
> 
> On 25.10.2023 10:10, Cui, Lili wrote:
> >> On 22.10.2023 16:05, Cui, Lili wrote:
> >>>>> --- /dev/null
> >>>>> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
> >>>>> @@ -0,0 +1,156 @@
> >>>>> +# Check 64bit APX NDD instructions with evex prefix encoding
> >>>>> +
> >>>>> +	.allow_index_reg
> >>>>> +	.text
> >>>>> +_start:
> >>>>> +cmovge 0x90909090(%eax),%edx,%r8d cmovle
> >>>>> +0x90909090(%eax),%edx,%r8d cmovg  0x90909090(%eax),%edx,%r8d
> >>>>> +imul   0x90909(%eax),%edx,%r8d
> >>>>> +imul   0x909(%rax,%r31,8),%rdx,%r25
> >>>>
> >>>> What about imul by immediate? The present spec is quite unclear there:
> >>>> The insn page says {ND=ZU} and the table says 0/1 in the ND column.
> >>>>
> >>>
> >>> We don't support it yet, I put it in RFC.
> >>> ...
> >>> 2. Support APX ZU   -- In progress
> >>> 3. Support APX CCMP and CTEST -- In progress ...
> >>>
> >>> About 0/1 in the ND column, it means ZU can be 0/1.
> >>>
> >>> IMUL with opcodes 0x69 and 0x6B in map 0 and SETcc instructions
> >>> Although these instructions do not support NDD, the EVEX.ND bit is
> >>> used to control whether its destination register has its upper bits
> >>> (namely,
> >> bits [63:OSIZE]) zeroed when OSIZE is 8b or 16b.
> >>> That is, if EVEX.ND = 1, the upper bits are always zeroed;
> >>> otherwise, they keep the old values when OSIZE is 8b or 16b. For
> >>> these instructions,
> >> EVEX.[V4,V3,V2,V1,V0] must be all zero.
> >>
> >> So ZU indeed isn't just a typo there. For 32- and 64-bit forms, is
> >> EVEX.ND then simply being ignored? The ZU really is meaningful only for
> 16-bit forms, aiui ...
> >>
> >
> > EVEX.ZU should be ignored for 32-bit and 64-bit forms. For imul (in spec 6.30
> IMUL), EVEX.ND stands for ND or ZU.
> 
> In cases like this, where ignoring bits is kind of unexpected, the spec would
> better say explicitly (on the instruction page) when a meaningless bit is indeed
> ignored, rather than being reserved and causing #UD. Note how even the text
> in the APX-EVEX-INT section leaves open (or at least ambiguous, by not
> mentioning the case) whether SETcc with a memory operand ignores EVEX.ND
> or causes #UD when the bit is set.
> 

Sorry, my previous answer was inaccurate, EVEX.ZU will not be ignored in 32-bit and 64-bit forms.

Prior to Intel® APX, the following rules apply in 64-bit mode when an instruction’s destination is a GPR and
OSIZE < 64b:
1. If OSIZE is 32b, the destination GPR gets the instruction’s result in bits [31:0] and all zeros in bits
[63:32].
2. If OSIZE is 8b or 16b, the destination GPR gets the instruction’s result in bits [OSIZE-1:0] but keep its
old value in bits [63:OSIZE].

The ZU indication described in items 2.(b) of Section 3.1.2.3.1 does not introduce an NDD. For those
instructions, EVEX.ND=0 keeps the current x86 behavior, but EVEX.ND=1 forces the zeroing of bits
[63:OSIZE] for any OSIZE < 64b

> > I think ZU makes sense for both the 16-bit form (imul) and the 8-bit form
> (setcc, I'm not sure if imul supports it yet).
> 
> No, IMUL by immediate (or actually any IMUL with multiple operands) doesn't
> support byte register operands. For SETcc the ZU aspect is pretty clear and
> doesn't even need expressing by new syntax in (dis)assembly - you can simply
> distinguish the two forms by using either 8-bit registers (no ZU) or 32-/64-bit
> ones (with ZU). In principle that's possible with IMUL as well, of course, but it
> may be deemed a little odd:
> 
> 	imul	$17, %dx, %cx
> 	imul	$17, %dx, %ecx
> 
> Yet personally I'd still prefer this over adding e.g. {zu} on either the mnemonic
> or the destination operand. Question (as with the way to express
> {nf}) is how other assemblers are going to handle it. (Would be quite nice if
> the spec could at least give more clear hints towards suggested syntax, but
> that hadn't been the case already with the syntax extensions needed for
> AVX512.)
> 
 
I will add suffix “zx” (for the Intel syntax) or “zwq” (for the AT&T syntax) to the mnemonic:

Intel syntax                                              AT&T syntax
imulzx rax, word ptr[ rbx ], 0xab         imulzwq $0xab, (%rbx), %rax

Lili.

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

* Re: [PATCH 4/8] Support APX NDD
  2023-10-25 15:49             ` Cui, Lili
@ 2023-10-25 15:59               ` Jan Beulich
  0 siblings, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-10-25 15:59 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, Kong, Lingling, binutils

On 25.10.2023 17:49, Cui, Lili wrote:
>> Subject: Re: [PATCH 4/8] Support APX NDD
>>
>> On 25.10.2023 10:10, Cui, Lili wrote:
>>>> On 22.10.2023 16:05, Cui, Lili wrote:
>>>>>>> --- /dev/null
>>>>>>> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s
>>>>>>> @@ -0,0 +1,156 @@
>>>>>>> +# Check 64bit APX NDD instructions with evex prefix encoding
>>>>>>> +
>>>>>>> +	.allow_index_reg
>>>>>>> +	.text
>>>>>>> +_start:
>>>>>>> +cmovge 0x90909090(%eax),%edx,%r8d cmovle
>>>>>>> +0x90909090(%eax),%edx,%r8d cmovg  0x90909090(%eax),%edx,%r8d
>>>>>>> +imul   0x90909(%eax),%edx,%r8d
>>>>>>> +imul   0x909(%rax,%r31,8),%rdx,%r25
>>>>>>
>>>>>> What about imul by immediate? The present spec is quite unclear there:
>>>>>> The insn page says {ND=ZU} and the table says 0/1 in the ND column.
>>>>>>
>>>>>
>>>>> We don't support it yet, I put it in RFC.
>>>>> ...
>>>>> 2. Support APX ZU   -- In progress
>>>>> 3. Support APX CCMP and CTEST -- In progress ...
>>>>>
>>>>> About 0/1 in the ND column, it means ZU can be 0/1.
>>>>>
>>>>> IMUL with opcodes 0x69 and 0x6B in map 0 and SETcc instructions
>>>>> Although these instructions do not support NDD, the EVEX.ND bit is
>>>>> used to control whether its destination register has its upper bits
>>>>> (namely,
>>>> bits [63:OSIZE]) zeroed when OSIZE is 8b or 16b.
>>>>> That is, if EVEX.ND = 1, the upper bits are always zeroed;
>>>>> otherwise, they keep the old values when OSIZE is 8b or 16b. For
>>>>> these instructions,
>>>> EVEX.[V4,V3,V2,V1,V0] must be all zero.
>>>>
>>>> So ZU indeed isn't just a typo there. For 32- and 64-bit forms, is
>>>> EVEX.ND then simply being ignored? The ZU really is meaningful only for
>> 16-bit forms, aiui ...
>>>>
>>>
>>> EVEX.ZU should be ignored for 32-bit and 64-bit forms. For imul (in spec 6.30
>> IMUL), EVEX.ND stands for ND or ZU.
>>
>> In cases like this, where ignoring bits is kind of unexpected, the spec would
>> better say explicitly (on the instruction page) when a meaningless bit is indeed
>> ignored, rather than being reserved and causing #UD. Note how even the text
>> in the APX-EVEX-INT section leaves open (or at least ambiguous, by not
>> mentioning the case) whether SETcc with a memory operand ignores EVEX.ND
>> or causes #UD when the bit is set.
>>
> 
> Sorry, my previous answer was inaccurate, EVEX.ZU will not be ignored in 32-bit and 64-bit forms.
> 
> Prior to Intel® APX, the following rules apply in 64-bit mode when an instruction’s destination is a GPR and
> OSIZE < 64b:
> 1. If OSIZE is 32b, the destination GPR gets the instruction’s result in bits [31:0] and all zeros in bits
> [63:32].
> 2. If OSIZE is 8b or 16b, the destination GPR gets the instruction’s result in bits [OSIZE-1:0] but keep its
> old value in bits [63:OSIZE].
> 
> The ZU indication described in items 2.(b) of Section 3.1.2.3.1 does not introduce an NDD. For those
> instructions, EVEX.ND=0 keeps the current x86 behavior, but EVEX.ND=1 forces the zeroing of bits
> [63:OSIZE] for any OSIZE < 64b

While described differently, that's still the same behavior as before for
OSIZE > 16b, isn't it? Which still means the EVEX.ND is effectively ignored
in those cases (and could hence as well be reserved).

>>> I think ZU makes sense for both the 16-bit form (imul) and the 8-bit form
>> (setcc, I'm not sure if imul supports it yet).
>>
>> No, IMUL by immediate (or actually any IMUL with multiple operands) doesn't
>> support byte register operands. For SETcc the ZU aspect is pretty clear and
>> doesn't even need expressing by new syntax in (dis)assembly - you can simply
>> distinguish the two forms by using either 8-bit registers (no ZU) or 32-/64-bit
>> ones (with ZU). In principle that's possible with IMUL as well, of course, but it
>> may be deemed a little odd:
>>
>> 	imul	$17, %dx, %cx
>> 	imul	$17, %dx, %ecx
>>
>> Yet personally I'd still prefer this over adding e.g. {zu} on either the mnemonic
>> or the destination operand. Question (as with the way to express
>> {nf}) is how other assemblers are going to handle it. (Would be quite nice if
>> the spec could at least give more clear hints towards suggested syntax, but
>> that hadn't been the case already with the syntax extensions needed for
>> AVX512.)
>>
>  
> I will add suffix “zx” (for the Intel syntax) or “zwq” (for the AT&T syntax) to the mnemonic:
> 
> Intel syntax                                              AT&T syntax
> imulzx rax, word ptr[ rbx ], 0xab         imulzwq $0xab, (%rbx), %rax

For Intel syntax, unless you happen to know that MASM is going to go
that route, the "word ptr" is sufficient for disambiguation, and no
suffixes should be accepted (gas) or be output (objdump). For AT&T
syntax the case with a memory operand indeed requires some means to
disambiguate; as asked before, I wonder if your approach matches with
what other assemblers are going to do.

Jan

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

* RE: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
  2023-10-18 12:06                   ` Jan Beulich
@ 2023-10-25 16:03                     ` Cui, Lili
  0 siblings, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-10-25 16:03 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> Subject: Re: FW: [PATCH 3/8] Add tests for APX GPR32 with extend evex prefix
> 
> On 18.10.2023 13:26, Cui, Lili wrote:
> >> From: Jan Beulich <jbeulich@suse.com>
> >> Sent: Wednesday, October 18, 2023 4:06 PM
> >>
> >> On 18.10.2023 09:16, Cui, Lili wrote:
> >>>> On 18.10.2023 04:32, Cui, Lili wrote:
> >>>>>>>>> --- a/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>>>>>>>> +++ b/gas/testsuite/gas/i386/x86-64-inval-movbe.s
> >>>>>>>>> @@ -1,5 +1,6 @@
> >>>>>>>>>  # Check illegal movbe in 64bit mode.
> >>>>>>>>>  	.text
> >>>>>>>>> +	.arch .noapx_f
> >>>>>>>>>  foo:
> >>>>>>>>>  	movbe	(%rcx),%bl
> >>>>>>>>>  	movbe	%ecx,%ebx
> >>>>>>>>
> >>>>>>>> I don't understand the need for this addition (and hence for
> >>>>>>>> the need to change the test's expecations). Like was mentioned
> >>>>>>>> on the original
> >>>>>>>> AVX10 series, tests like this shall not need modification, or
> >>>>>>>> else it indicates people's code also may need ".arch .noapx_f"
> >>>>>>>> additions, which I'm sure you agree may not be required.
> >>>>>>>> Finally, if testcase expecations like the above would be needed
> >>>>>>>> anywhere, please generalize them such that a similar mere
> >>>>>>>> addition of a line doesn't require the entire test to be
> >>>>>>>> touched. Here this means that while for the diagnostics you of
> >>>>>>>> course want exact line number matches, for the actual listing
> >>>>>>>> line numbers don't don't need matching
> >>>> individually.
> >>>>>>>>
> >>>>>>>
> >>>>>>> Agree with you, but movbe is special, movbe didn't support reg
> >>>>>>> to reg
> >>>>>> before, but APX enable it. so I added .arch .noapx_f for this invalid
> test.
> >>>>>>
> >>>>>> To be honest I didn't really notice this difference so far.
> >>>>>> That's somewhat ugly, because people mistakenly using a reg->reg
> >>>>>> form would suddenly get an EVEX encoding rather than an error.
> >>>>>> This will need some further thought; please mention the "anomaly"
> >>>>>> explicitly in the
> >>>> description of the respective patch.
> >>>>>>
> >>>>> SPEC:
> >>>>> Note: The promoted versions of MOVBE will be extended to include
> >>>>> the “MOVBE reg1, reg2” form (namely, the ModRM.Mod = 3 case) for
> >>>>> both opcodes 0xF0 and 0xF1. This extension makes the promotion of
> >>>>> BSWAP for
> >>>> NDD support unnecessary.
> >>>>>
> >>>>> I'll add a description of movbe to the patch 2/8 changelog.
> >>>>
> >>>> Thanks. I did deduce the connection to BSWAP on the way home
> yesterday.
> >>>> Which made me come up with a (spec) question: Wouldn't it make
> >>>> sense to name these
> >>>> reg->reg forms BSWAP, not MOVBE? It doesn't really matter that they
> >>>> reg->use the
> >>>> same encoding as the MOVBE (then mem-only) forms. That would then
> >>>> eliminate the concern I raised.
> >>>>
> >>>
> >>> If we extend BSWAP, it needs to add the operation of reading
> >>> ModRM.Mod. I
> >> think this is the benefit of this solution now.
> >>
> >> I'm afraid I don't follow: I don't propose extending the original BSWAP.
> >> I merely propose to use the BSWAP mnemonic with the reg->reg form of
> >> what's presently called MOVBE. (As an aside, in principle no ModR/M
> >> byte would be needed to extend the original BSWAP: One operand is
> >> encoded in the base opcode, and the other could be encoded in VVVV.
> >> But that would of course needlessly consume an entire row in the
> >> opcode table. Hence why I fully understand that the opcode wants
> >> sharing with MOVBE.)
> >>
> >
> > I think it's a trade-off between functionality closer to BSWAP and opcode
> closer to MOVBE. Since the spec was published and gcc has committed the
> patch to the community, I think it would be hard to push it to change.
> 
> In which case I wonder how one could influence such decisions, when the first
> publication of such a spec already means things are set in stone. I was hoping
> that only inclusion in the SDM would mean no (easy) changes anymore.
> 

We feedback this issue to the author, he said : mobve has the same operation as bswap, while bswap only has 1 operand. Movbe has src and dest. The reason for introducing movbe is that we don't want to promote bswap.

Lili.

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

* RE: [PATCH 6/8] Support APX Push2/Pop2
  2023-09-28 11:37   ` Jan Beulich
@ 2023-10-30 15:21     ` Cui, Lili
  2023-10-30 15:31       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-10-30 15:21 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Mo, Zewei, binutils

> Subject: Re: [PATCH 6/8] Support APX Push2/Pop2
> 
> On 19.09.2023 17:25, Cui, Lili wrote:
> > --- a/gas/config/tc-i386.c
> > +++ b/gas/config/tc-i386.c
> > @@ -5667,6 +5667,22 @@ md_assemble (char *line)
> >        i.rex &= REX_OPCODE;
> >      }
> >
> > +  if (i.tm.opcode_modifier.push2pop2)
> > +    {
> > +      i.imm_operands = 0;
> 
> Why?

Removed, it is redundant.

> 
> > +      unsigned int reg1 = register_number (i.op[0].regs);
> > +      unsigned int reg2 = register_number (i.op[1].regs);
> > +
> > +      /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same
> registers.  */
> > +      if (reg1 == 0x4 || reg2 == 0x4)
> > +	as_bad (_("%s for `%s'"), _("invalid register operand"),
> > +		insn_name (current_templates->start));
> > +
> > +      if ((i.tm.mnem_off == MN_pop2 || i.tm.mnem_off == MN_pop2p) &&
> > + reg1 == reg2)
> 
> This would be easier with a single opcode check on the lhs of the &&.
> 

Done.

> > +	as_bad (_("%s for `%s'"), _("invalid register operand"),
> > +		insn_name (current_templates->start));
> > +    }
> 

> Both error messages want to be more specific, such that it's clear what exactly
> is wrong. Also a string literal for %s is slightly odd, and may pose issues to
> translators.
> 
> Furthermore there are pre-existing insns with restrictions on register
> operands. I wonder whether these new checks wouldn't better be put close to
> those.
> 

Done.

> > @@ -7100,7 +7116,11 @@ optimize_NDD_to_nonNDD (const insn_template
> *t)
> >        && t->opcode_space == SPACE_EVEXMAP4
> >        && i.reg_operands >= 2
> >        && (i.types[i.operands - 1].bitfield.dword
> > -	  || i.types[i.operands - 1].bitfield.qword))
> > +	  || i.types[i.operands - 1].bitfield.qword)
> > +      && (t->mnem_off != MN_pop2
> > +	  && t->mnem_off != MN_pop2p
> > +	  && t->mnem_off != MN_push2
> > +	  && t->mnem_off != MN_push2p))
> 
> If an explicit check is needed here, why not use the push2pop2 attribute?
> 

We will move it to NDD optimization encoding patch. and use i.tm.opcode_modifier.push2pop2 instead.

> > @@ -8912,7 +8932,13 @@ build_modrm_byte (void)
> >        dest = ~0;
> 
> This already sets dest ...
> 
> >      }
> >    gas_assert (source < dest);
> > -  if (i.tm.opcode_modifier.operandconstraint == SWAP_SOURCES
> > +  if (i.tm.opcode_modifier.push2pop2)
> > +    {
> > +      v = 1;
> > +      dest = (unsigned int) ~0;
> 
> ... to the intended value. Furthermore, doesn't ...
> 
> > +      source = 0;
> > +    }
> > +  else if (i.tm.opcode_modifier.operandconstraint == SWAP_SOURCES
> >        && source != op)
> >      {
> >        unsigned int tmp = source;
> 
> ... this logic already take care of the wanted swapping, provided the templates
> get SwapSources added? Hmm, odd - you already have that attribute on the
> two POP2 templates, but not the two PUSH2 ones. Yet both use identical
> operand (encoding) order.

Push2 and Pop2 have extension opcode,  so they don't need to change anything in this function, and removed SWAP_SOURCES for POP2.

      if (i.tm.extension_opcode != None)
        {
          if (dest != source)
            v = dest;
          dest = ~0;

> 
> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.d
> > @@ -0,0 +1,29 @@
> > +#as: --64
> > +#objdump: -dw
> > +#name: illegal decoding of APX-push2pop2 insns
> 
> Decoding cannot be illegal. Either you mean encoding, or you mean "decoding
> of illegal APX-push2pop2 insn forms".
> 

It should be "illegal encoding of APX-push2pop2 insns".

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-decode-inval.s
> > @@ -0,0 +1,19 @@
> > +# Check illegal bytecode of APX-Push2Pop2 instructions # pop2 %rax,
> > +%rbx
> 
> What's illegal here? From ...
> 

> > +# pop2 %rax, %rsp
> > +# push2 %rsp, %r17
> > +# pop2 %r12, %r12
> > +# pop2 %r31, %r31
> > +
> > +	.allow_index_reg
> > +	.text
> > +popnd0:
> > +	.byte 0x62,0xF4,0x64,0x08,0x8F,0xC0
> 
> ... the label name I guess EVEX.nd=0, but that needs saying. (As mentioned
> earlier, the comments want moving next to the code emission anyway,
> and .byte wants avoiding it at all possible.)
> 

Removed this invalid test file, some instructions were duplicated with tx86-64-apx-push2pop2-inval.s and moved some .byte (unavoidable but maybe not necessary) tests to x86-64-apx-evex-promoted-bad.s

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
> > @@ -0,0 +1,13 @@
> > +# Check illegal APX-Push2Pop2 instructions
> > +
> > +	.allow_index_reg
> > +	.text
> > +_start:
> > +	push2 %eax, %ebx
> > +	pop2 %rax, %rsp
> > +	push2 %rsp, %r17
> > +	pop2 %r12, %r12
> > +	push2p %eax, %ebx
> > +	pop2p %rax, %rsp
> > +	push2p %rsp, %r17
> > +	pop2p %r12, %r12
> 
> Please make sure that at least one of the forms uses %rsp once as first and
> once as second operand for both push and pop.
> 

Done.

> > --- a/opcodes/i386-dis-evex-x86.h
> > +++ b/opcodes/i386-dis-evex-x86.h
> > @@ -138,3 +138,13 @@
> >      { Bad_Opcode },
> >      { VEX_LEN_TABLE (VEX_LEN_0F3AF0) },
> >    },
> > +  /* X86_64_EVEX_MAP4_8F*/
> 
> Nit: Please make well-formed comments (...
> 

Done.

> > +  {
> > +    { Bad_Opcode },
> > +    { EVEX_LEN_TABLE (EVEX_LEN_MAP4_8F_X86_64) },  },
> > +  /* X86_64_EVEX_MAP4_FF_R_6*/
> 
> ... i.e. also here and possibly elsewhere).
> 

Done.

> > @@ -1341,6 +1354,9 @@ enum
> >    X86_64_EVEX_0F38F6,
> >    X86_64_EVEX_0F38F7,
> >    X86_64_EVEX_0F3AF0,
> > +
> > +  X86_64_EVEX_MAP4_8F,
> > +  X86_64_EVEX_MAP4_FF_R_6,
> >  };
> 
> This might indicate a problem in patch 4: Why is the x86-64 decode step
> entirely missing there? Or, if correct there, why is it needed here? For push
> and pop here I'd expect decode order and hence enumerators to be entirely
> consistent.
> 

Confirmed with patch 2/8 and 4/8, all MAP4 are missing in x86-64 table. Added x86-64 check for all MAP4 in get_valid_dis386. Deleted push2 and  pop2 here.

        case 0x4:
          vex_table_index = EVEX_MAP4;
          ins->evex_type = evex_from_legacy;+
 +       if (ins->address_mode != mode_64bit)
 +         return &bad_opcode;
          break;

> > @@ -1537,7 +1553,10 @@ enum
> >    EVEX_LEN_0F3A39,
> >    EVEX_LEN_0F3A3A,
> >    EVEX_LEN_0F3A3B,
> > -  EVEX_LEN_0F3A43
> > +  EVEX_LEN_0F3A43,
> > +
> > +  EVEX_LEN_MAP4_8F_X86_64,
> > +  EVEX_LEN_MAP4_FF_R_6_X86_64,
> >  };
> 
> Prior changes didn't find it necessary to handle EVEX.l through a table lookup
> - why is this needed here? Map4 has uniform requirements, and an earlier
> patch added respective checking, iirc.
> 

Removed EVEX.l , and added check for it.

> > @@ -8757,10 +8779,24 @@ get_valid_dis386 (const struct dis386 *dp,
> instr_info *ins)
> >        dp = &prefix_table[dp->op[1].bytemode][vindex];
> >        break;
> >
> > +    case USE_X86_64_EVEX_PUSH2_TABLE:
> > +    case USE_X86_64_EVEX_POP2_TABLE:
> > +	ins->evex_type = evex_push2_pop2;
> > +      unsigned int vvvv_reg = ins->vex.register_specifier
> > +			      | !ins->vex.v << 4;
> > +      unsigned int rm_reg = ins->modrm.rm + (ins->rex & REX_B ? 8 : 0)
> > +			    + (ins->rex2 & REX_B ? 16 : 0);
> > +      if (!ins->vex.b || vvvv_reg == 0x4 || rm_reg == 0x4
> > +	  || (dp->op[0].bytemode == USE_X86_64_EVEX_POP2_TABLE
> > +	      && vvvv_reg == rm_reg))
> > +	  return &bad_opcode;
> > +      goto use_x86_64_table;
> 
> I don't think this is the way to handle such restrictions. Since this likely can't
> very well be handled in existing operand handlers, so far the approach was to
> introduce new ...Fixup() ones. That'll also produce more helpful output, e.g.
> "push2 (bad)", rather than ".byte ..."
> with no hint at approximately what insn this was. New USE_..._TABLE should
> imo really only appear when truly new tables are introduced.
> 

Put them in PUSH2_POP2_Fixup and removed USE_X86_64_EVEX_PUSH2_TABLE and USE_X86_64_EVEX_POP2_TABLE.

> >      case USE_X86_64_EVEX_FROM_VEX_TABLE:
> >        ins->evex_type = evex_from_vex;
> >        /* Fall through.  */
> >      case USE_X86_64_TABLE:
> > +use_x86_64_table:
> 
> While this is going to go away with the comment above, as a general
> remark: Within a switch(), please align labels used by "goto" from one case to
> another with the adjacent case label(s). Elsewhere, for "diff -p", please indent
> labels by at least one blank.
> 

Yes, they were deleted.

> > @@ -9570,7 +9606,8 @@ print_insn (bfd_vma pc, disassemble_info *info,
> int intel_syntax)
> >  	  /* Check whether rounding control was enabled for an insn not
> >  	     supporting it.  */
> >  	  if (ins.modrm.mod == 3 && ins.vex.b
> > -	      && !(ins.evex_used & EVEX_b_used))
> > +	      && !(ins.evex_used & EVEX_b_used)
> > +	      && ins.evex_type != evex_push2_pop2)
> >  	    {
> 
> Looks like addressing a comment on an earlier patch will render this change
> (and hence the new evex_push2_pop2 enumerator) unnecessary. If not, I'd
> ask whether you wouldn't better set EVEX_b_used at an appropriate point.
> 

Yes, it is redundant here, removed it. 

> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> > @@ -3555,3 +3555,9 @@ eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
> >
> >  // FRED instructions end.
> >
> > +// APX Push2/Pop2 instruction.
> > +
> > +push2, 0xff/6, APX_F|x64,
> >
> +Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVV|No_bSuf|No_lSuf
> |No_sSu
> > +f, { Reg64, Reg64 } push2p, 0xff/6, APX_F|x64,
> >
> +Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVV|No_bSuf|No_lSuf
> |No_sSu
> > +f, { Reg64, Reg64 } pop2, 0x8f/0, APX_F|x64,
> >
> +Modrm|VexW0|EVex128|Push2Pop2|SwapSources|EVexMap4|VexVVVV|No_
> bSuf|No
> > +_lSuf|No_sSuf, { Reg64, Reg64 } pop2p, 0x8f/0, APX_F|x64,
> >
> +Modrm|VexW1|EVex128|Push2Pop2|SwapSources|EVexMap4|VexVVVV|No_
> bSuf|No
> > +_lSuf|No_sSuf, { Reg64, Reg64 }
> 
> Missing No_wSuf in all 4 entries?
>
 
Added.

> As to the suffixing 'p' - may I ask in how far that's aligned with other
> assemblers? The doc doesn't even give a hint as to what mnemonic
> representation should be used (personally I had been taking .x into
> consideration). Furthermore the earlier REX2 patch also didn't deal with the
> PPX functionality for PUSH/POP, unless I missed something.
>

Pop2p and Push2p are listed in sections 9.1 and 9.2 of the doc. PPX functionality for PUSH/POP is not implemented in this patch, It will be implemented separately later. I'll note it in the Push2/pop2 commit log.

EVEX.LLZ.NP.MAP4.W1 8F 11:000:bbb
POP2P {NF=0} {ND=1} r64, r64

EVEX.LLZ.NP.MAP4.W1 FF 11:110:bbb
PUSH2P {NF=0} {ND=1} r64, r64

Thanks,
Lili.

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

* Re: [PATCH 6/8] Support APX Push2/Pop2
  2023-10-30 15:21     ` Cui, Lili
@ 2023-10-30 15:31       ` Jan Beulich
  2023-11-20 13:05         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-10-30 15:31 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, Mo, Zewei, binutils

On 30.10.2023 16:21, Cui, Lili wrote:
>> As to the suffixing 'p' - may I ask in how far that's aligned with other
>> assemblers? The doc doesn't even give a hint as to what mnemonic
>> representation should be used (personally I had been taking .x into
>> consideration). Furthermore the earlier REX2 patch also didn't deal with the
>> PPX functionality for PUSH/POP, unless I missed something.
>>
> 
> Pop2p and Push2p are listed in sections 9.1 and 9.2 of the doc. PPX functionality for PUSH/POP is not implemented in this patch, It will be implemented separately later. I'll note it in the Push2/pop2 commit log.
> 
> EVEX.LLZ.NP.MAP4.W1 8F 11:000:bbb
> POP2P {NF=0} {ND=1} r64, r64
> 
> EVEX.LLZ.NP.MAP4.W1 FF 11:110:bbb
> PUSH2P {NF=0} {ND=1} r64, r64

Oh, I see - somehow I managed to overlook that "P" there. Does that mean the
PPX forms of PUSH/POP and then going to be PUSHP/POPP (there's no mention of
such mnemonics in the doc, afaics)?

Jan

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

* RE: [PATCH 8/8] Support APX JMPABS
  2023-09-28 13:11   ` Jan Beulich
@ 2023-11-02  2:32     ` Hu, Lin1
  0 siblings, 0 replies; 91+ messages in thread
From: Hu, Lin1 @ 2023-11-02  2:32 UTC (permalink / raw)
  To: Beulich, Jan, Cui, Lili; +Cc: Lu, Hongjiu, binutils

> On 19.09.2023 17:25, Cui, Lili wrote:
> > --- a/gas/config/tc-i386.c
> > +++ b/gas/config/tc-i386.c
> > @@ -3880,6 +3880,7 @@ is_any_apx_encoding (void)
> >      || i.tm.opcode_space == SPACE_EVEXMAP4
> >      || i.has_nf
> >      || i.has_zero_upper
> > +    || i.tm.mnem_off == MN_jmpabs
> >      || (i.vex.register_specifier
> >  	&& i.vex.register_specifier->reg_flags & RegRex2);  } @@ -3887,7
> > +3888,8 @@ is_any_apx_encoding (void)  static INLINE bool
> > is_any_apx_rex2_encoding (void)  {
> > -  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding;
> > +  return (i.rex2 && i.vex.length == 2) || i.rex2_encoding
> > +	  || i.tm.mnem_off == MN_jmpabs;
> >  }
> 
> These are getting both too complex for my taste, when they - iirc - sit on a
> relatively common (and hence hot) path.
>

Have modified.
 
>
> > @@ -7703,7 +7705,7 @@ match_template (char mnem_suffix)
> >    if (!quiet_warnings)
> >      {
> >        if (!intel_syntax
> > -	  && (i.jumpabsolute != (t->opcode_modifier.jump ==
> JUMP_ABSOLUTE)))
> > +	  && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE)
> > +&& t->mnem_off != MN_jmpabs))
> 
> Nit: Too long line. But - does this need changing? JMPABS isn't an indirect jump.
>

Have modified. Yes, JMPABS isn't an indirect jump. But we use jmpabs like jmpabs $123. So i.jumpabsolute == false.

> 
> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/apx-mov-inval.l
> > @@ -0,0 +1,2 @@
> > +.* Assembler messages:
> > +.*:5: Error: unsupport rex2 pseudo prefix for `mov'
> 
> What is this new file doing here, entirely in isolation?
>

In the new patch structure, "mov" related changes are all eliminated (and I don't remember why they're here).

> 
> > @@ -2057,7 +2061,7 @@ static const struct dis386 dis386[] = {
> >    { "lahf",		{ XX }, 0 },
> >    /* a0 */
> >    { "mov%LB",		{ AL, Ob }, 0 },
> > -  { "mov%LS",		{ eAX, Ov }, 0 },
> > +  { "mov%LS",		{ { JMPABS_Fixup, eAX_reg }, { JMPABS_Fixup,
> v_mode } }, 0 },
> >    { "mov%LB",		{ Ob, AL }, 0 },
> >    { "mov%LS",		{ Ov, eAX }, 0 },
> >    { "movs{b|}",		{ Ybr, Xb }, 0 },
> > @@ -9690,6 +9694,15 @@ print_insn (bfd_vma pc, disassemble_info *info, int
> intel_syntax)
> >        goto out;
> >      }
> >
> > +  if (ins.jmpabs
> > +      && ((ins.prefixes & (PREFIX_OPCODE | PREFIX_ADDR)) != 0x0
> > +	  || (ins.rex2_payload & 0x8) != 0x0))
> > +    {
> > +      i386_dis_printf (info, dis_style_text, "(bad)");
> > +      ret = ins.end_codep - priv.the_buffer;
> > +      goto out;
> > +    }
> 
> Why can't this be dealt with in JMPABS_Fixup()?
>

Have modified.

BRs,
Lin

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

* RE: [PATCH 7/8] Support APX NF
  2023-09-28 12:42   ` Jan Beulich
@ 2023-11-02 10:15     ` Cui, Lili
  2023-11-02 10:23       ` Jan Beulich
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-11-02 10:15 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> Subject: Re: [PATCH 7/8] Support APX NF
> 
> On 19.09.2023 17:25, Cui, Lili wrote:
> > @@ -4178,11 +4180,15 @@ build_evex_insns_with_extend_evex_prefix
> (void)
> >      i.vex.bytes[1] &= 0xef;
> >    if (i.vex.register_specifier
> >        && register_number (i.vex.register_specifier) > 0xf)
> > -    i.vex.bytes[3] &=0xf7;
> > +    i.vex.bytes[3] &= 0xf7;
> 
> When you notice such issues, they want correcting in the patch introducing
> them.
> 

Fixed it in the original patch.

> > @@ -5944,6 +5954,10 @@ parse_insn (const char *line, char *mnemonic,
> bool prefix_only)
> >  		  /* {rex2} */
> >  		  i.rex2_encoding = true;
> >  		  break;
> > +		case Prefix_NF:
> > +		  /* {NF} */
> > +		  i.has_nf = true;
> > +		  break;
> 
> I find it odd that this is represented as a (pseudo-)prefix. The manual doesn't
> suggest so; it rather looks like the intention is for it to be a mnemonic suffix,
> as in "add{nf} ...". Hence same question as before: In how far is this
> representation aligned with what other assemblers are going to do?
> 

Jan, thanks for the great suggestions on these prefixes and suffixes. We will consider each item carefully and try to document these special things. This patch needs to be suspended.

> > @@ -7151,6 +7165,19 @@ optimize_NDD_to_nonNDD (const insn_template
> *t)
> 
> How useful that this function is mentioned at least this way: No change there?
> (See my comments on the patch introducing it.)
> 
 
Reserved has_nf flag in a previous patch.

> >    return 0;
> >  }
> >
> > +/* Check if NF prefix requirements are met by the instruction.  */
> > +static int
> 
> As before, bool please for functions returning boolean values.
> 
Done.

> > +check_NfPrefix (const insn_template *t) {
> > +  if (i.has_nf && !t->opcode_modifier.nf)
> > +    {
> > +      /* This instruction should support nf prefix.  */
> > +      i.error = unsupported;
> 
> A more specific error message would be nice here.
> 
Done.

> Question of course is whether, for such an isolated check, you really need a
> new helper function.
> 
Removed the function.

> > @@ -7551,6 +7578,7 @@ match_template (char mnem_suffix)
> >  		  goto check_operands_345;
> >  		}
> >  	      else if (t->opcode_space != SPACE_BASE
> > +		       && !t->opcode_modifier.nf
> >  		       && (t->opcode_space != SPACE_0F
> >  			   /* MOV to/from CR/DR/TR, as an exception, follow
> >  			      the base opcode space encoding model.  */
> 
> With an earlier comment addressed, I expect this change may not be
> necessary anymore.
> 
Yes, it has been removed.

> > @@ -7652,6 +7680,13 @@ match_template (char mnem_suffix)
> >  	  continue;
> >  	}
> >
> > +      /* Check if nf prefix are valid.  */
> > +      if (check_NfPrefix (t))
> > +	{
> > +	  specific_error = progress (i.error);
> > +	  continue;
> > +	}
> 
> Is it helpful (e.g. diagnostic-wise) to have this check so late? If so, is it useful to
> "continue" when this is the only thing that doesn't match?
> No other template is going to match in such an event, afaict.
> 

Yes, it is useful to continue.
For example" {nf}  add  $123, %bl "
In order, we first find legacy add, then the judgment finds they don’t match, then continue to find the second template which has NF.

add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
add, 0x83/0, APX_F, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }

> > --- a/gas/testsuite/gas/i386/x86-64-apx-ndd.d
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.d
> > @@ -158,7 +158,7 @@ Disassembly of section .text:
> >  \s*[a-f0-9]+:\s*67 62 f4 3c 18 4f 90 90 90 90 90 	cmovg  -
> 0x6f6f6f70\(%eax\),%edx,%r8d
> >  \s*[a-f0-9]+:\s*67 62 f4 3c 18 af 90 09 09 09 00 	imul
> 0x90909\(%eax\),%edx,%r8d
> >  \s*[a-f0-9]+:\s*62 b4 b0 10 af 94 f8 09 09 00 00 	imul
> 0x909\(%rax,%r31,8\),%rdx,%r25
> > -\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+inc    %rax
> > +\s*[a-f0-9]+:\s*62 f4 fc 08 ff c0\s+\{evex\} inc %rax
> 
> It's kind of unexpected to see this change here.
>
It has been removed in the NDD patch.

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-nf.s
> > @@ -0,0 +1,1256 @@
> > +# Check 64bit APX_F instructions
> > +
> > +        .text
> > +_start:
> > +	{nf}	add	$123, %bl	 #APX_F OPC_EVEX_NF
> OPC_EVEX_EVEX
> 
> Comments on earlier patches apply throughout this file as well.
> 

Done.

> > +	{nf}	imul	291(%r8, %rax, 4), %ecx, %edx	 #APX_F
> OPC_EVEX_NF OPC_EVEX_ND
> > +	{nf}	imulq	291(%r8, %rax, 4)	 #APX_F OPC_EVEX_NF
> OPC_EVEX_EVEX
> > +	{nf}	imul	291(%r8, %rax, 4), %r9	 #APX_F OPC_EVEX_NF
> OPC_EVEX_EVEX
> > +	{nf}	imul	291(%r8, %rax, 4), %r9, %r31	 #APX_F
> OPC_EVEX_NF OPC_EVEX_ND
> 
> No IMUL by immediate?
> 

Replied with the earlier patch.

> > --- a/gas/testsuite/gas/i386/x86-64.exp
> > +++ b/gas/testsuite/gas/i386/x86-64.exp
> > @@ -372,6 +372,8 @@ run_dump_test "x86-64-apx-evex-promoted"
> >  run_dump_test "x86-64-apx-evex-promoted-intel"
> >  run_dump_test "x86-64-apx-evex-egpr"
> >  run_dump_test "x86-64-apx-ndd"
> > +run_dump_test "x86-64-apx-nf"
> > +run_dump_test "x86-64-apx-nf-intel"
> >  run_dump_test "x86-64-avx512f-rcigrz-intel"
> >  run_dump_test "x86-64-avx512f-rcigrz"
> >  run_dump_test "x86-64-clwb"
> 
> No test checking that {nf} isn't accepted (assembler) / EVEX.nf set is rejected
> (disassembler) on insns not permitting its use, at least for a few examples?
> 
Done.

> > @@ -1003,7 +1007,7 @@ typedef struct insn_template
> >       AMD 3DNow! instructions.
> >       If this template has no extension opcode (the usual case) use None
> >       Instructions */
> > -  signed int extension_opcode:0xA;
> > +  signed int extension_opcode:0xB;
> 
> For this and ...
> 
> > @@ -1017,7 +1021,8 @@ typedef struct insn_template
> >  #define Prefix_EVEX		7	/* {evex} */
> >  #define Prefix_REX		8	/* {rex} */
> >  #define Prefix_REX2		9	/* {rex2} */
> > -#define Prefix_NoOptimize	0xA	/* {nooptimize} */
> > +#define Prefix_NF		0xA	/* {nf} */
> > +#define Prefix_NoOptimize	0xB	/* {nooptimize} */
> 
> ... this, see comments on an earlier patch.
> 

Done.

> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> > @@ -286,25 +286,41 @@ add, 0x0, 0,
> > D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg3
> > add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S,
> > Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }  add,
> 0x4,
> > 0, W|No_sSuf, { Imm8|Imm16|Imm32|Imm32S,
> Acc|Byte|Word|Dword|Qword }
> > add, 0x80/0, 0, W|Modrm|No_sSuf|HLEPrefixLock, {
> > Imm8|Imm16|Imm32|Imm32S,
> >
> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex
> }
> > -add, 0x0, APX_F|x64,
> > D|W|CheckOperandSize|Modrm|No_sSuf|VexVVVV|EVex128|EVexMap4, {
> > Reg8|Reg16|Reg32|Reg64,
> >
> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex,
> > Reg8|Reg16|Reg32|Reg64 } -add, 0x83/0, APX_F|x64,
> >
> Modrm|CheckOperandSize|No_bSuf|No_sSuf|VexVVVV|EVex128|EVexMap4, {
> > Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex,
> > Reg16|Reg32|Reg64 } -add, 0x80/0, APX_F|x64,
> > W|Modrm|CheckOperandSize|No_sSuf|VexVVVV|EVex128|EVexMap4, {
> > Imm8|Imm16|Imm32|Imm32S,
> >
> Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex,
> > Reg8|Reg16|Reg32|Reg64}
> > +
> > +add, 0x0, APX_F|x64,
> > +D|W|CheckOperandSize|Modrm|No_sSuf|EVex128|EVexMap4|NF, {
> > +Reg8|Reg16|Reg32|Reg64,
> >
> +Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseInde
> x }
> > +add, 0x83/0, APX_F|x64,
> Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, {
> > +Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> > +add, 0x80/0, APX_F|x64, W|Modrm|No_sSuf|EVex128|EVexMap4|NF, {
> > +Imm8|Imm16|Imm32|Imm32S,
> >
> +Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseInde
> x }
> 
> Huge patches like this are already hard enough to review. Can you please try
> to make sure you introduce new templates right in their final shape (within
> the specific series of course), rather than touching them again a 2nd time?
> Even without fully supporting NF, introducing the attribute (as a dummy or
> without any consumer) ought to be possible earlier on.
> 
Added NF in NDD patch.

> As per earlier comments many of these templates need cleaning up anyway, so
> I won't look at the other in any detail here, and instead wait for a v2.
> 
Ok.

Thanks,
Lili.

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

* Re: [PATCH 7/8] Support APX NF
  2023-11-02 10:15     ` Cui, Lili
@ 2023-11-02 10:23       ` Jan Beulich
  2023-11-02 10:46         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-11-02 10:23 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, binutils

On 02.11.2023 11:15, Cui, Lili wrote:
>> On 19.09.2023 17:25, Cui, Lili wrote:
>>> @@ -7652,6 +7680,13 @@ match_template (char mnem_suffix)
>>>  	  continue;
>>>  	}
>>>
>>> +      /* Check if nf prefix are valid.  */
>>> +      if (check_NfPrefix (t))
>>> +	{
>>> +	  specific_error = progress (i.error);
>>> +	  continue;
>>> +	}
>>
>> Is it helpful (e.g. diagnostic-wise) to have this check so late? If so, is it useful to
>> "continue" when this is the only thing that doesn't match?
>> No other template is going to match in such an event, afaict.
>>
> 
> Yes, it is useful to continue.
> For example" {nf}  add  $123, %bl "
> In order, we first find legacy add, then the judgment finds they don’t match, then continue to find the second template which has NF.
> 
> add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> add, 0x83/0, APX_F, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }

Hmm, I wonder whether NF-needed-but-no-permitted-by-template shouldn't be a
relatively early check: It's pretty cheap and avoids doing a number of more
involved checks then.

Jan

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

* RE: [PATCH 7/8] Support APX NF
  2023-11-02 10:23       ` Jan Beulich
@ 2023-11-02 10:46         ` Cui, Lili
  2023-12-12  2:59           ` H.J. Lu
  0 siblings, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-11-02 10:46 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, binutils

> Subject: Re: [PATCH 7/8] Support APX NF
> 
> On 02.11.2023 11:15, Cui, Lili wrote:
> >> On 19.09.2023 17:25, Cui, Lili wrote:
> >>> @@ -7652,6 +7680,13 @@ match_template (char mnem_suffix)
> >>>  	  continue;
> >>>  	}
> >>>
> >>> +      /* Check if nf prefix are valid.  */
> >>> +      if (check_NfPrefix (t))
> >>> +	{
> >>> +	  specific_error = progress (i.error);
> >>> +	  continue;
> >>> +	}
> >>
> >> Is it helpful (e.g. diagnostic-wise) to have this check so late? If
> >> so, is it useful to "continue" when this is the only thing that doesn't match?
> >> No other template is going to match in such an event, afaict.
> >>
> >
> > Yes, it is useful to continue.
> > For example" {nf}  add  $123, %bl "
> > In order, we first find legacy add, then the judgment finds they don’t match,
> then continue to find the second template which has NF.
> >
> > add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S,
> > Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } add,
> > 0x83/0, APX_F, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S,
> > Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> 
> Hmm, I wonder whether NF-needed-but-no-permitted-by-template shouldn't
> be a relatively early check: It's pretty cheap and avoids doing a number of
> more involved checks then.
> 
Agreed, it's better to put it in the front.

      /* Check AT&T/Intel syntax.  */
      specific_error = progress (unsupported_syntax);
      if ((intel_syntax && t->opcode_modifier.attsyntax)
          || (!intel_syntax && t->opcode_modifier.intelsyntax))
        continue;

+      /* Check NF support.  */
+      specific_error = progress (unsupported_nf);
+      if (i.has_nf && !t->opcode_modifier.nf)
+       continue;
+
       /* Check Intel64/AMD64 ISA.   */

Thanks,
Lili

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

* RE: [PATCH 6/8] Support APX Push2/Pop2
  2023-10-30 15:31       ` Jan Beulich
@ 2023-11-20 13:05         ` Cui, Lili
  0 siblings, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-11-20 13:05 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, Mo, Zewei, binutils

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Monday, October 30, 2023 11:31 PM
> To: Cui, Lili <lili.cui@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; Mo, Zewei <zewei.mo@intel.com>;
> binutils@sourceware.org
> Subject: Re: [PATCH 6/8] Support APX Push2/Pop2
> 
> On 30.10.2023 16:21, Cui, Lili wrote:
> >> As to the suffixing 'p' - may I ask in how far that's aligned with
> >> other assemblers? The doc doesn't even give a hint as to what
> >> mnemonic representation should be used (personally I had been taking
> >> .x into consideration). Furthermore the earlier REX2 patch also
> >> didn't deal with the PPX functionality for PUSH/POP, unless I missed
> something.
> >>
> >
> > Pop2p and Push2p are listed in sections 9.1 and 9.2 of the doc. PPX
> functionality for PUSH/POP is not implemented in this patch, It will be
> implemented separately later. I'll note it in the Push2/pop2 commit log.
> >
> > EVEX.LLZ.NP.MAP4.W1 8F 11:000:bbb
> > POP2P {NF=0} {ND=1} r64, r64
> >
> > EVEX.LLZ.NP.MAP4.W1 FF 11:110:bbb
> > PUSH2P {NF=0} {ND=1} r64, r64
> 
> Oh, I see - somehow I managed to overlook that "P" there. Does that mean
> the PPX forms of PUSH/POP and then going to be PUSHP/POPP (there's no
> mention of such mnemonics in the doc, afaics)?
> 
Yes, the PPX form of PUSH/POP is PUSHP/POPP and it will be included in the doc, maybe next release.

Thanks,
Lili.

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

* Re: [PATCH 7/8] Support APX NF
  2023-11-02 10:46         ` Cui, Lili
@ 2023-12-12  2:59           ` H.J. Lu
  0 siblings, 0 replies; 91+ messages in thread
From: H.J. Lu @ 2023-12-12  2:59 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Beulich, Jan, Lu, Hongjiu, binutils

On Thu, Nov 2, 2023 at 3:47 AM Cui, Lili <lili.cui@intel.com> wrote:
>
> > Subject: Re: [PATCH 7/8] Support APX NF
> >
> > On 02.11.2023 11:15, Cui, Lili wrote:
> > >> On 19.09.2023 17:25, Cui, Lili wrote:
> > >>> @@ -7652,6 +7680,13 @@ match_template (char mnem_suffix)
> > >>>     continue;
> > >>>   }
> > >>>
> > >>> +      /* Check if nf prefix are valid.  */
> > >>> +      if (check_NfPrefix (t))
> > >>> + {
> > >>> +   specific_error = progress (i.error);
> > >>> +   continue;
> > >>> + }
> > >>
> > >> Is it helpful (e.g. diagnostic-wise) to have this check so late? If
> > >> so, is it useful to "continue" when this is the only thing that doesn't match?
> > >> No other template is going to match in such an event, afaict.
> > >>
> > >
> > > Yes, it is useful to continue.
> > > For example" {nf}  add  $123, %bl "
> > > In order, we first find legacy add, then the judgment finds they don’t match,
> > then continue to find the second template which has NF.
> > >
> > > add, 0x83/0, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock, { Imm8S,
> > > Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex } add,
> > > 0x83/0, APX_F, Modrm|No_bSuf|No_sSuf|EVex128|EVexMap4|NF, { Imm8S,
> > > Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
> >
> > Hmm, I wonder whether NF-needed-but-no-permitted-by-template shouldn't
> > be a relatively early check: It's pretty cheap and avoids doing a number of
> > more involved checks then.
> >
> Agreed, it's better to put it in the front.
>
>       /* Check AT&T/Intel syntax.  */
>       specific_error = progress (unsupported_syntax);
>       if ((intel_syntax && t->opcode_modifier.attsyntax)
>           || (!intel_syntax && t->opcode_modifier.intelsyntax))
>         continue;
>
> +      /* Check NF support.  */
> +      specific_error = progress (unsupported_nf);
> +      if (i.has_nf && !t->opcode_modifier.nf)
> +       continue;
> +
>        /* Check Intel64/AMD64 ISA.   */
>
> Thanks,
> Lili

We have a long internal discussion.   "{nf} add $123, %eax" is the preferred
syntax.


-- 
H.J.

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

* RE: [PATCH 6/8] Support APX Push2/Pop2
  2023-11-22  8:53       ` Jan Beulich
@ 2023-11-22 12:26         ` Cui, Lili
  0 siblings, 0 replies; 91+ messages in thread
From: Cui, Lili @ 2023-11-22 12:26 UTC (permalink / raw)
  To: Beulich, Jan; +Cc: Lu, Hongjiu, ccoutant, binutils, Mo, Zewei

> >>> --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
> >>> +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
> >>> @@ -30,3 +30,9 @@ _start:
> >>>          .byte 0xff
> >>>          #{evex} inc %rax EVEX.vvvv' > 0 (illegal value).
> >>>          .byte 0x62, 0xf4, 0xec, 0x08, 0xff, 0xc0
> >>> +        .byte 0xff, 0xff
> >>> +	# pop2 %rax, %rbx set EVEX.ND=0.
> >>> +        .byte 0x62,0xf4,0x64,0x08,0x8f,0xc0
> >>> +        .byte 0xff, 0xff, 0xff
> >>> +	# pop2 %rax, %rsp set EVEX.VVVV=0xf.
> >>> +        .byte 0x62,0xf4,0x7c,0x18,0x8f,0xc0
> >>
> >> This 2nd comment looks bogus. What is it that's being tested here?
> >>
> >
> > I think it should be  # pop2 %rax set EVEX.vvvv' = 1111. It wants to test that
> pop2 has only one operand when decoding.
> 
> But POP2 has two operands, one encoded in EVEX.vvvv. The use of %rsp as an
> operand is what I would think is being tested here, but then I don't see why
> the comment mentions EVEX.vvvv.
> 

Ok, I changed it to test %rsp.

Thanks,
Lili.

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

* Re: [PATCH 6/8] Support APX Push2/Pop2
  2023-11-22  5:48     ` Cui, Lili
@ 2023-11-22  8:53       ` Jan Beulich
  2023-11-22 12:26         ` Cui, Lili
  0 siblings, 1 reply; 91+ messages in thread
From: Jan Beulich @ 2023-11-22  8:53 UTC (permalink / raw)
  To: Cui, Lili; +Cc: Lu, Hongjiu, ccoutant, binutils, Mo, Zewei

On 22.11.2023 06:48, Cui, Lili wrote:
>> On 02.11.2023 12:29, Cui, Lili wrote:
>>> @@ -6854,6 +6858,24 @@ check_VecOperands (const insn_template *t)
>>>  	}
>>>      }
>>>
>>> +  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same
>>> + registers.  */  if (t->opcode_modifier.push2pop2)
>>
>> I question this way of recognizing these two insns: You introduce a whole new
>> table column here just to have two entries set this bit.
>> This is cheaper by comparing the mnemonic offsets, as we do elsewhere in
>> various cases.
>>
> 
> Done.
> 
>> I also disagree with putting the check in check_VecOperands():
>> There's nothing vector-ish here. Either you put it straight in the caller, or you
>> introduce a new check_APX_operands().
>>
> 
> How about  putting check_EgprOperands into check_APX_operands ?
> 
>       /* Check if EGRPS operands(r16-r31) are valid.  */
>       if (check_EgprOperands (t))
>         {
>           specific_error = progress (i.error);
>           continue;
>         }
> 
>       /* Check if APX operands are valid.  */
>       if (check_APX_operands (t))
>         {
>           specific_error = progress (i.error);
>           continue;
>         }

Hmm, question and suggested code don't fit together. The suggested code
certainly fits what I was suggesting earlier.

>>> --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
>>> +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
>>> @@ -30,3 +30,9 @@ _start:
>>>          .byte 0xff
>>>          #{evex} inc %rax EVEX.vvvv' > 0 (illegal value).
>>>          .byte 0x62, 0xf4, 0xec, 0x08, 0xff, 0xc0
>>> +        .byte 0xff, 0xff
>>> +	# pop2 %rax, %rbx set EVEX.ND=0.
>>> +        .byte 0x62,0xf4,0x64,0x08,0x8f,0xc0
>>> +        .byte 0xff, 0xff, 0xff
>>> +	# pop2 %rax, %rsp set EVEX.VVVV=0xf.
>>> +        .byte 0x62,0xf4,0x7c,0x18,0x8f,0xc0
>>
>> This 2nd comment looks bogus. What is it that's being tested here?
>>
> 
> I think it should be  # pop2 %rax set EVEX.vvvv' = 1111. It wants to test that pop2 has only one operand when decoding.

But POP2 has two operands, one encoded in EVEX.vvvv. The use of %rsp as
an operand is what I would think is being tested here, but then I don't
see why the comment mentions EVEX.vvvv.

Jan

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

* RE: [PATCH 6/8] Support APX Push2/Pop2
  2023-11-08 11:44   ` Jan Beulich
  2023-11-08 12:52     ` Jan Beulich
@ 2023-11-22  5:48     ` Cui, Lili
  2023-11-22  8:53       ` Jan Beulich
  1 sibling, 1 reply; 91+ messages in thread
From: Cui, Lili @ 2023-11-22  5:48 UTC (permalink / raw)
  To: Beulich, Jan, Mo, Zewei; +Cc: Lu, Hongjiu, ccoutant, binutils

> On 02.11.2023 12:29, Cui, Lili wrote:
> > --- a/gas/config/tc-i386.c
> > +++ b/gas/config/tc-i386.c
> > @@ -256,6 +256,7 @@ enum i386_error
> >      mask_not_on_destination,
> >      no_default_mask,
> >      unsupported_rc_sae,
> > +    unsupported_rsp_register,
> >      invalid_register_operand,
> >      internal_error,
> >    };
> > @@ -5476,6 +5477,9 @@ md_assemble (char *line)
> >  	case unsupported_rc_sae:
> >  	  err_msg = _("unsupported static rounding/sae");
> >  	  break;
> > +	case unsupported_rsp_register:
> > +	  err_msg = _("unsupported rsp register");
> > +	  break;
> 
> Perhaps you mean "cannot be used with" or some such? Also the register
> name needs conditionally prefixing with % in diagnostics.
> 

Done.

> > @@ -6854,6 +6858,24 @@ check_VecOperands (const insn_template *t)
> >  	}
> >      }
> >
> > +  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same
> > + registers.  */  if (t->opcode_modifier.push2pop2)
> 
> I question this way of recognizing these two insns: You introduce a whole new
> table column here just to have two entries set this bit.
> This is cheaper by comparing the mnemonic offsets, as we do elsewhere in
> various cases.
> 

Done.

> I also disagree with putting the check in check_VecOperands():
> There's nothing vector-ish here. Either you put it straight in the caller, or you
> introduce a new check_APX_operands().
> 

How about  putting check_EgprOperands into check_APX_operands ?

      /* Check if EGRPS operands(r16-r31) are valid.  */
      if (check_EgprOperands (t))
        {
          specific_error = progress (i.error);
          continue;
        }

      /* Check if APX operands are valid.  */
      if (check_APX_operands (t))
        {
          specific_error = progress (i.error);
          continue;
        }

> > +    {
> > +      unsigned int reg1 = register_number (i.op[0].regs);
> > +      unsigned int reg2 = register_number (i.op[1].regs);
> > +
> > +      if (reg1 == 0x4 || reg2 == 0x4)
> > +	{
> > +	  i.error = unsupported_rsp_register;
> > +	  return 1;
> > +	}
> > +      if (t->base_opcode == 0x8f && reg1 == reg2)
> > +	{
> > +	  i.error = invalid_dest_and_src_register_set;
> 
> This enumerator's disagnostic talks about source and destination register,
> which isn't applicable here.
> 

Done.

> > --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
> > @@ -30,3 +30,9 @@ _start:
> >          .byte 0xff
> >          #{evex} inc %rax EVEX.vvvv' > 0 (illegal value).
> >          .byte 0x62, 0xf4, 0xec, 0x08, 0xff, 0xc0
> > +        .byte 0xff, 0xff
> > +	# pop2 %rax, %rbx set EVEX.ND=0.
> > +        .byte 0x62,0xf4,0x64,0x08,0x8f,0xc0
> > +        .byte 0xff, 0xff, 0xff
> > +	# pop2 %rax, %rsp set EVEX.VVVV=0xf.
> > +        .byte 0x62,0xf4,0x7c,0x18,0x8f,0xc0
> 
> This 2nd comment looks bogus. What is it that's being tested here?
> 

I think it should be  # pop2 %rax set EVEX.vvvv' = 1111. It wants to test that pop2 has only one operand when decoding.

> Also again note indentation inconsistencies.
> 

Done.

> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
> > @@ -0,0 +1,15 @@
> > +# Check illegal APX-Push2Pop2 instructions
> > +
> > +	.allow_index_reg
> > +	.text
> > +_start:
> > +	push2  %eax, %ebx
> 
> It's okay to test 32-bit operands, but more important is to test 16-bit ones, as
> only those could (also) be used with PUSH/POP.
> 

Done.

> > --- a/opcodes/i386-dis-evex-mod.h
> > +++ b/opcodes/i386-dis-evex-mod.h
> > @@ -1,4 +1,9 @@
> >  /* Nothing at present.  */
> > +  /* MOD_EVEX_MAP4_8F_R_0 */
> > +  {
> > +    { Bad_Opcode },
> > +    { PREFIX_TABLE (PREFIX_EVEX_MAP4_8F_R_0_M_1) },  },
> >    /* MOD_EVEX_MAP4_DA_PREFIX_1 */
> >    {
> >      { Bad_Opcode },
> > @@ -41,3 +46,8 @@
> >    {
> >      { "movdiri",	{ Edq, Gdq }, 0 },
> >    },
> > +  /* MOD_EVEX_MAP4_FF_R_6 */
> > +  {
> > +    { Bad_Opcode },
> > +    { PREFIX_TABLE (PREFIX_EVEX_MAP4_FF_R_6_M_1) },  },
> 
> Same comment as before regarding additions to this file.
> 

Done.

> > --- a/opcodes/i386-dis.c
> > +++ b/opcodes/i386-dis.c
> >[...]
> > @@ -9011,6 +9020,8 @@ get_valid_dis386 (const struct dis386 *dp,
> instr_info *ins)
> >  	case 0x4:
> >  	  vex_table_index = EVEX_MAP4;
> >  	  ins->evex_type = evex_from_legacy;
> > +	  if (ins->address_mode != mode_64bit)
> > +	    return &bad_opcode;
> >  	  break;
> 
> This looks to belong into an earlier patch.
> 

Done.

> > @@ -9073,8 +9084,9 @@ get_valid_dis386 (const struct dis386 *dp,
> instr_info *ins)
> >  	{
> >  	  /* EVEX from legacy instructions, when the EVEX.ND bit is 0,
> >  	     all bits of EVEX.vvvv and EVEX.V' must be 1.  */
> > -	  if (!ins->vex.b && (ins->vex.register_specifier
> > -				  || !ins->vex.v))
> > +	  if (ins->vex.ll || (!ins->vex.b
> > +			      && (ins->vex.register_specifier
> > +				  || !ins->vex.v)))
> >  	    return &bad_opcode;
> 
> This as well.
> 

Deleted, redundant.

> > @@ -13821,3 +13836,24 @@ PREFETCHI_Fixup (instr_info *ins, int
> > bytemode, int sizeflag)
> >
> >    return OP_M (ins, bytemode, sizeflag);  }
> > +
> > +static bool
> > +PUSH2_POP2_Fixup (instr_info *ins, int bytemode, int sizeflag) {
> > +  unsigned int vvvv_reg = ins->vex.register_specifier
> > +    | !ins->vex.v << 4;
> 
> Nit: Please parenthesize the shift.
> 

Done.

> > +  unsigned int rm_reg = ins->modrm.rm + (ins->rex & REX_B ? 8 : 0)
> > +    + (ins->rex2 & REX_B ? 16 : 0);
> > +
> > +  /* Here vex.b is treated as "EVEX.ND.  */
> > +  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same
> > + registers.  */
> 
> The two comments want folding. As to the former, though: How about having
> 
> #define nd b
> 
> in the EVEX struct declaration (provided we don't have any variables named
> "nd" right now), ...
> 
> > +  if (!ins->vex.b || vvvv_reg == 0x4 || rm_reg == 0x4
> 
> ... allowing to use ins->vex.nd here (at which point that comment is
> unnecessary)?
> 

Done.

> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> > @@ -3494,3 +3494,10 @@ erets, 0xf20f01ca, FRED|x64, NoSuf, {}  eretu,
> > 0xf30f01ca, FRED|x64, NoSuf, {}
> >
> >  // FRED instructions end.
> > +
> > +// APX Push2/Pop2 instruction.
> > +
> > +push2, 0xff/6, APX_F,
> >
> +Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No
> _wSuf|No_
> > +lSuf|No_sSuf, { Reg64, Reg64 } push2p, 0xff/6, APX_F,
> >
> +Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No
> _wSuf|No_
> > +lSuf|No_sSuf, { Reg64, Reg64 } pop2, 0x8f/0, APX_F,
> >
> +Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No
> _wSuf|No_
> > +lSuf|No_sSuf, { Reg64, Reg64 } pop2p, 0x8f/0, APX_F,
> >
> +Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No
> _wSuf|No_
> > +lSuf|No_sSuf, { Reg64, Reg64 }
> 
> Like other extensions have it, there also wants to be an "end" comment.

Done.

Thanks,
Lili.

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

* Re: [PATCH 6/8] Support APX Push2/Pop2
  2023-11-02 11:29 ` [PATCH 6/8] Support APX Push2/Pop2 Cui, Lili
  2023-11-08 11:44   ` Jan Beulich
@ 2023-11-09  9:57   ` Jan Beulich
  1 sibling, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-11-09  9:57 UTC (permalink / raw)
  To: Cui, Lili; +Cc: hongjiu.lu, ccoutant, binutils

On 02.11.2023 12:29, Cui, Lili wrote:
> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -3494,3 +3494,10 @@ erets, 0xf20f01ca, FRED|x64, NoSuf, {}
>  eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
>  
>  // FRED instructions end.
> +
> +// APX Push2/Pop2 instruction.
> +
> +push2, 0xff/6, APX_F, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +push2p, 0xff/6, APX_F, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +pop2, 0x8f/0, APX_F, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +pop2p, 0x8f/0, APX_F, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }

I think the use of the VexVVVV attribute here wants to be consistent with
that in the earlier patch used for e.g. NEG: Nominally (i.e. notation-wise)
the last operand is the destination operand in both cases (even if in
practice it's a source one here). The resulting encoding being the same is
merely an effect resulting from ModR/M.reg being used for an opcode
extension in both cases (which takes priority over register assignment in
build_modrm_byte()). But: I came to spot the inconsistency when looking at
patch 7, which keys off of VexVVVVDst. Obviously when making things
consistent here, there would then need to be measures to avoid the
optimization kicking in on the insns here. Hence an alternative to using
VexVVVVDst here would be a clarifying / justifying comment.

Jan

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

* Re: [PATCH 6/8] Support APX Push2/Pop2
  2023-11-08 11:44   ` Jan Beulich
@ 2023-11-08 12:52     ` Jan Beulich
  2023-11-22  5:48     ` Cui, Lili
  1 sibling, 0 replies; 91+ messages in thread
From: Jan Beulich @ 2023-11-08 12:52 UTC (permalink / raw)
  To: Cui, Lili, Mo, Zewei; +Cc: hongjiu.lu, ccoutant, binutils

On 08.11.2023 12:44, Jan Beulich wrote:
> On 02.11.2023 12:29, Cui, Lili wrote:
>> @@ -6854,6 +6858,24 @@ check_VecOperands (const insn_template *t)
>>  	}
>>      }
>>  
>> +  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same registers.  */
>> +  if (t->opcode_modifier.push2pop2)
> 
> I question this way of recognizing these two insns: You introduce a
> whole new table column here just to have two entries set this bit.
> This is cheaper by comparing the mnemonic offsets, as we do elsewhere
> in various cases.

Well, it's 4 rows, not 2, so the mnemonic offset suggestion isn't quite
nice. But there still is no need for a whole new attribute. Just another
OperandConstraint value ought to do.

Jan

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

* Re: [PATCH 6/8] Support APX Push2/Pop2
  2023-11-02 11:29 ` [PATCH 6/8] Support APX Push2/Pop2 Cui, Lili
@ 2023-11-08 11:44   ` Jan Beulich
  2023-11-08 12:52     ` Jan Beulich
  2023-11-22  5:48     ` Cui, Lili
  2023-11-09  9:57   ` Jan Beulich
  1 sibling, 2 replies; 91+ messages in thread
From: Jan Beulich @ 2023-11-08 11:44 UTC (permalink / raw)
  To: Cui, Lili, Mo, Zewei; +Cc: hongjiu.lu, ccoutant, binutils

On 02.11.2023 12:29, Cui, Lili wrote:
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -256,6 +256,7 @@ enum i386_error
>      mask_not_on_destination,
>      no_default_mask,
>      unsupported_rc_sae,
> +    unsupported_rsp_register,
>      invalid_register_operand,
>      internal_error,
>    };
> @@ -5476,6 +5477,9 @@ md_assemble (char *line)
>  	case unsupported_rc_sae:
>  	  err_msg = _("unsupported static rounding/sae");
>  	  break;
> +	case unsupported_rsp_register:
> +	  err_msg = _("unsupported rsp register");
> +	  break;

Perhaps you mean "cannot be used with" or some such? Also the register
name needs conditionally prefixing with % in diagnostics.

> @@ -6854,6 +6858,24 @@ check_VecOperands (const insn_template *t)
>  	}
>      }
>  
> +  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same registers.  */
> +  if (t->opcode_modifier.push2pop2)

I question this way of recognizing these two insns: You introduce a
whole new table column here just to have two entries set this bit.
This is cheaper by comparing the mnemonic offsets, as we do elsewhere
in various cases.

I also disagree with putting the check in check_VecOperands():
There's nothing vector-ish here. Either you put it straight in the
caller, or you introduce a new check_APX_operands().

> +    {
> +      unsigned int reg1 = register_number (i.op[0].regs);
> +      unsigned int reg2 = register_number (i.op[1].regs);
> +
> +      if (reg1 == 0x4 || reg2 == 0x4)
> +	{
> +	  i.error = unsupported_rsp_register;
> +	  return 1;
> +	}
> +      if (t->base_opcode == 0x8f && reg1 == reg2)
> +	{
> +	  i.error = invalid_dest_and_src_register_set;

This enumerator's disagnostic talks about source and destination
register, which isn't applicable here.

> --- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
> +++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
> @@ -30,3 +30,9 @@ _start:
>          .byte 0xff
>          #{evex} inc %rax EVEX.vvvv' > 0 (illegal value).
>          .byte 0x62, 0xf4, 0xec, 0x08, 0xff, 0xc0
> +        .byte 0xff, 0xff
> +	# pop2 %rax, %rbx set EVEX.ND=0.
> +        .byte 0x62,0xf4,0x64,0x08,0x8f,0xc0
> +        .byte 0xff, 0xff, 0xff
> +	# pop2 %rax, %rsp set EVEX.VVVV=0xf.
> +        .byte 0x62,0xf4,0x7c,0x18,0x8f,0xc0

This 2nd comment looks bogus. What is it that's being tested here?

Also again note indentation inconsistencies.

> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
> @@ -0,0 +1,15 @@
> +# Check illegal APX-Push2Pop2 instructions
> +
> +	.allow_index_reg
> +	.text
> +_start:
> +	push2  %eax, %ebx

It's okay to test 32-bit operands, but more important is to test
16-bit ones, as only those could (also) be used with PUSH/POP.

> --- a/opcodes/i386-dis-evex-mod.h
> +++ b/opcodes/i386-dis-evex-mod.h
> @@ -1,4 +1,9 @@
>  /* Nothing at present.  */
> +  /* MOD_EVEX_MAP4_8F_R_0 */
> +  {
> +    { Bad_Opcode },
> +    { PREFIX_TABLE (PREFIX_EVEX_MAP4_8F_R_0_M_1) },
> +  },
>    /* MOD_EVEX_MAP4_DA_PREFIX_1 */
>    {
>      { Bad_Opcode },
> @@ -41,3 +46,8 @@
>    {
>      { "movdiri",	{ Edq, Gdq }, 0 },
>    },
> +  /* MOD_EVEX_MAP4_FF_R_6 */
> +  {
> +    { Bad_Opcode },
> +    { PREFIX_TABLE (PREFIX_EVEX_MAP4_FF_R_6_M_1) },
> +  },

Same comment as before regarding additions to this file.

> --- a/opcodes/i386-dis.c
> +++ b/opcodes/i386-dis.c
>[...]
> @@ -9011,6 +9020,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>  	case 0x4:
>  	  vex_table_index = EVEX_MAP4;
>  	  ins->evex_type = evex_from_legacy;
> +	  if (ins->address_mode != mode_64bit)
> +	    return &bad_opcode;
>  	  break;

This looks to belong into an earlier patch.

> @@ -9073,8 +9084,9 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
>  	{
>  	  /* EVEX from legacy instructions, when the EVEX.ND bit is 0,
>  	     all bits of EVEX.vvvv and EVEX.V' must be 1.  */
> -	  if (!ins->vex.b && (ins->vex.register_specifier
> -				  || !ins->vex.v))
> +	  if (ins->vex.ll || (!ins->vex.b
> +			      && (ins->vex.register_specifier
> +				  || !ins->vex.v)))
>  	    return &bad_opcode;

This as well.

> @@ -13821,3 +13836,24 @@ PREFETCHI_Fixup (instr_info *ins, int bytemode, int sizeflag)
>  
>    return OP_M (ins, bytemode, sizeflag);
>  }
> +
> +static bool
> +PUSH2_POP2_Fixup (instr_info *ins, int bytemode, int sizeflag)
> +{
> +  unsigned int vvvv_reg = ins->vex.register_specifier
> +    | !ins->vex.v << 4;

Nit: Please parenthesize the shift.

> +  unsigned int rm_reg = ins->modrm.rm + (ins->rex & REX_B ? 8 : 0)
> +    + (ins->rex2 & REX_B ? 16 : 0);
> +
> +  /* Here vex.b is treated as "EVEX.ND.  */
> +  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same registers.  */

The two comments want folding. As to the former, though: How about having

#define nd b

in the EVEX struct declaration (provided we don't have any variables named
"nd" right now), ...

> +  if (!ins->vex.b || vvvv_reg == 0x4 || rm_reg == 0x4

... allowing to use ins->vex.nd here (at which point that comment is
unnecessary)?

> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -3494,3 +3494,10 @@ erets, 0xf20f01ca, FRED|x64, NoSuf, {}
>  eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
>  
>  // FRED instructions end.
> +
> +// APX Push2/Pop2 instruction.
> +
> +push2, 0xff/6, APX_F, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +push2p, 0xff/6, APX_F, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +pop2, 0x8f/0, APX_F, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
> +pop2p, 0x8f/0, APX_F, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }

Like other extensions have it, there also wants to be an "end" comment.

Jan

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

* [PATCH 6/8] Support APX Push2/Pop2
  2023-11-02 11:29 [PATCH v2 0/8] Support Intel APX EGPR Cui, Lili
@ 2023-11-02 11:29 ` Cui, Lili
  2023-11-08 11:44   ` Jan Beulich
  2023-11-09  9:57   ` Jan Beulich
  0 siblings, 2 replies; 91+ messages in thread
From: Cui, Lili @ 2023-11-02 11:29 UTC (permalink / raw)
  To: binutils; +Cc: jbeulich, hongjiu.lu, ccoutant, Mo, Zewei

From: "Mo, Zewei" <zewei.mo@intel.com>

PPX functionality for PUSH/POP is not implemented in this patch
and will be implemented separately.

gas/ChangeLog:

	* config/tc-i386.c: (enum i386_error):
	New unsupported_rsp_register.
	(md_assemble): Add handler for unsupported_rsp_register.
	(check_VecOperands): Add invalid check for push2/pop2.
	* testsuite/gas/i386/i386.exp: Add apx-push2pop2 tests.
	* testsuite/gas/i386/x86-64.exp: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2.d: New test.
	* testsuite/gas/i386/x86-64-apx-push2pop2.s: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-inval.l: Ditto.
	* testsuite/gas/i386/x86-64-apx-push2pop2-inval.s: Ditto.
	* testsuite/gas/i386/apx-push2pop2-inval.s: Ditto.
	* testsuite/gas/i386/apx-push2pop2-inval.d: Ditto.
	* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d: Added bad
	testcases for POP.
	* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s: Ditto.

opcodes/ChangeLog:

	* i386-dis-evex-mod.h: Add MOD_EVEX_MAP4_8F_R_0
	and MOD_EVEX_MAP4_FF_R_6
	* i386-dis-evex-prefix.h: Add PREFIX_EVEX_MAP4_8F_R_0_M_1
	and PREFIX_EVEX_MAP4_FF_R_6_M_1.
	* i386-dis-evex-reg.h: Add REG_EVEX_MAP4_8F.
	* i386-dis-evex-w.h: Add EVEX_W_MAP4_8F_R_0_M_1_P_0
	and EVEX_W_MAP4_FF_R_6_M_1_P_0
	* i386-dis-evex.h: Add REG_EVEX_MAP4_8F.
	* i386-dis.c (PUSH2_POP2_Fixup): Add special handling for PUSH2/POP2.
	(get_valid_dis386): Add handler for vector length and address_mode for
	APX-Push2/Pop2 insn.
	(OP_VEX): Add handler of 64-bit vvvv register for APX-Push2/Pop2 insn.
	* i386-gen.c: Add Push2Pop2 bitfield.
	* i386-opc.h: Regenerated.
	* i386-opc.tbl: Regenerated.
---
 gas/config/tc-i386.c                          | 22 ++++++++++
 gas/testsuite/gas/i386/apx-push2pop2-inval.l  |  5 +++
 gas/testsuite/gas/i386/apx-push2pop2-inval.s  |  9 ++++
 gas/testsuite/gas/i386/i386.exp               |  1 +
 .../gas/i386/x86-64-apx-evex-promoted-bad.d   |  6 ++-
 .../gas/i386/x86-64-apx-evex-promoted-bad.s   |  6 +++
 .../gas/i386/x86-64-apx-push2pop2-intel.d     | 42 +++++++++++++++++++
 .../gas/i386/x86-64-apx-push2pop2-inval.l     | 11 +++++
 .../gas/i386/x86-64-apx-push2pop2-inval.s     | 15 +++++++
 gas/testsuite/gas/i386/x86-64-apx-push2pop2.d | 42 +++++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx-push2pop2.s | 39 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64.exp             |  3 ++
 opcodes/i386-dis-evex-mod.h                   | 10 +++++
 opcodes/i386-dis-evex-prefix.h                |  8 ++++
 opcodes/i386-dis-evex-reg.h                   |  9 ++++
 opcodes/i386-dis-evex-w.h                     | 10 +++++
 opcodes/i386-dis-evex.h                       |  2 +-
 opcodes/i386-dis.c                            | 40 +++++++++++++++++-
 opcodes/i386-gen.c                            |  1 +
 opcodes/i386-opc.h                            |  4 ++
 opcodes/i386-opc.tbl                          |  7 ++++
 21 files changed, 287 insertions(+), 5 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/apx-push2pop2-inval.l
 create mode 100644 gas/testsuite/gas/i386/apx-push2pop2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-push2pop2.s

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 5b925505435..7a86aff1828 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -256,6 +256,7 @@ enum i386_error
     mask_not_on_destination,
     no_default_mask,
     unsupported_rc_sae,
+    unsupported_rsp_register,
     invalid_register_operand,
     internal_error,
   };
@@ -5476,6 +5477,9 @@ md_assemble (char *line)
 	case unsupported_rc_sae:
 	  err_msg = _("unsupported static rounding/sae");
 	  break;
+	case unsupported_rsp_register:
+	  err_msg = _("unsupported rsp register");
+	  break;
 	case invalid_register_operand:
 	  err_msg = _("invalid register operand");
 	  break;
@@ -6854,6 +6858,24 @@ check_VecOperands (const insn_template *t)
 	}
     }
 
+  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same registers.  */
+  if (t->opcode_modifier.push2pop2)
+    {
+      unsigned int reg1 = register_number (i.op[0].regs);
+      unsigned int reg2 = register_number (i.op[1].regs);
+
+      if (reg1 == 0x4 || reg2 == 0x4)
+	{
+	  i.error = unsupported_rsp_register;
+	  return 1;
+	}
+      if (t->base_opcode == 0x8f && reg1 == reg2)
+	{
+	  i.error = invalid_dest_and_src_register_set;
+	  return 1;
+	}
+    }
+
   /* Check if broadcast is supported by the instruction and is applied
      to the memory operand.  */
   if (i.broadcast.type || i.broadcast.bytes)
diff --git a/gas/testsuite/gas/i386/apx-push2pop2-inval.l b/gas/testsuite/gas/i386/apx-push2pop2-inval.l
new file mode 100644
index 00000000000..a55a71520c8
--- /dev/null
+++ b/gas/testsuite/gas/i386/apx-push2pop2-inval.l
@@ -0,0 +1,5 @@
+.* Assembler messages:
+.*:6: Error: `push2' is only supported in 64-bit mode
+.*:7: Error: `push2p' is only supported in 64-bit mode
+.*:8: Error: `pop2' is only supported in 64-bit mode
+.*:9: Error: `pop2p' is only supported in 64-bit mode
diff --git a/gas/testsuite/gas/i386/apx-push2pop2-inval.s b/gas/testsuite/gas/i386/apx-push2pop2-inval.s
new file mode 100644
index 00000000000..77166327ed1
--- /dev/null
+++ b/gas/testsuite/gas/i386/apx-push2pop2-inval.s
@@ -0,0 +1,9 @@
+# Check 32bit APX-PUSH2/POP2 instructions
+
+	.allow_index_reg
+	.text
+_start:
+	push2 %rax, %rbx
+	push2p %rax, %rbx
+	pop2 %rax, %rbx
+	pop2p %rax, %rbx
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index ee74bcd4615..75e1a4ca369 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -509,6 +509,7 @@ if [gas_32_check] then {
     run_dump_test "sm4"
     run_dump_test "sm4-intel"
     run_list_test "pbndkb-inval"
+    run_list_test "apx-push2pop2-inval"
     run_list_test "sg"
     run_dump_test "clzero"
     run_dump_test "invlpgb"
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d
index 9060b697c0d..fe652977a54 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d
@@ -31,5 +31,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:[ 	]+00 ff[ 	]+add    %bh,%bh
 [ 	]*[a-f0-9]+:[ 	]+62 f4 ec[ 	]+\(bad\)
 [ 	]*[a-f0-9]+:[ 	]+08 ff[ 	]+or     %bh,%bh
-[ 	]*[a-f0-9]+:[ 	]+c0[ 	]+.byte 0xc0
-#pass
+[ 	]*[a-f0-9]+:[ 	]+c0 ff ff[ 	]+sar    \$0xff,%bh
+[ 	]*[a-f0-9]+:[ 	]+62 f4 64[ 	]+\(bad\)
+[ 	]*[a-f0-9]+:[ 	]+08 8f c0 ff ff ff[ 	]+or     %cl,-0x40\(%rdi\)
+[ 	]*[a-f0-9]+:[ 	]+62 f4 7c 18 8f c0[ 	]+pop2   %rax,\(bad\)
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
index d4f4cb72e6e..e6f61a229f0 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
@@ -30,3 +30,9 @@ _start:
         .byte 0xff
         #{evex} inc %rax EVEX.vvvv' > 0 (illegal value).
         .byte 0x62, 0xf4, 0xec, 0x08, 0xff, 0xc0
+        .byte 0xff, 0xff
+	# pop2 %rax, %rbx set EVEX.ND=0.
+        .byte 0x62,0xf4,0x64,0x08,0x8f,0xc0
+        .byte 0xff, 0xff, 0xff
+	# pop2 %rax, %rsp set EVEX.VVVV=0xf.
+        .byte 0x62,0xf4,0x7c,0x18,0x8f,0xc0
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d
new file mode 100644
index 00000000000..46b21219582
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-intel.d
@@ -0,0 +1,42 @@
+#as: --64
+#objdump: -dw -Mintel
+#name: i386 APX-push2pop2 insns (Intel disassembly)
+#source: x86-64-apx-push2pop2.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+r31,r24
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+r31,r24
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+rax,rbx
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+r8,r17
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+r31,r9
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+r24,r31
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+r31,r24
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+rbx,rax
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+r17,r8
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+r9,r31
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+r31,r24
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l
new file mode 100644
index 00000000000..5eea811a047
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.l
@@ -0,0 +1,11 @@
+.* Assembler messages:
+.*:6: Error: operand size mismatch for `push2'
+.*:7: Error: unsupported rsp register for `push2'
+.*:8: Error: unsupported rsp register for `push2'
+.*:9: Error: operand size mismatch for `push2p'
+.*:10: Error: unsupported rsp register for `push2p'
+.*:11: Error: unsupported rsp register for `pop2'
+.*:12: Error: unsupported rsp register for `pop2'
+.*:13: Error: destination and source registers must be distinct for `pop2'
+.*:14: Error: unsupported rsp register for `pop2p'
+.*:15: Error: destination and source registers must be distinct for `pop2p'
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
new file mode 100644
index 00000000000..c0cd9c3ce89
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2-inval.s
@@ -0,0 +1,15 @@
+# Check illegal APX-Push2Pop2 instructions
+
+	.allow_index_reg
+	.text
+_start:
+	push2  %eax, %ebx
+	push2  %rsp, %r17
+	push2  %r17, %rsp
+	push2p %eax, %ebx
+	push2p %rsp, %r17
+	pop2   %rax, %rsp
+	pop2   %rsp, %rax
+	pop2   %r12, %r12
+	pop2p  %rax, %rsp
+	pop2p  %r12, %r12
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2.d b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.d
new file mode 100644
index 00000000000..54f22a7f94e
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.d
@@ -0,0 +1,42 @@
+#as: --64
+#objdump: -dw
+#name: x86_64 APX-push2pop2 insns
+#source: x86-64-apx-push2pop2.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+%r24,%r31
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+%r24,%r31
+\s*[a-f0-9]+:\s*62 f4 7c 18 ff f3\s+push2\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc 3c 18 ff f1\s+push2\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 04 10 ff f1\s+push2\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc 3c 10 ff f7\s+push2\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 fc 18 ff f3\s+push2p\s+%rbx,%rax
+\s*[a-f0-9]+:\s*62 fc bc 18 ff f1\s+push2p\s+%r17,%r8
+\s*[a-f0-9]+:\s*62 d4 84 10 ff f1\s+push2p\s+%r9,%r31
+\s*[a-f0-9]+:\s*62 dc bc 10 ff f7\s+push2p\s+%r31,%r24
+\s*[a-f0-9]+:\s*62 f4 64 18 8f c0\s+pop2\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 74 10 8f c0\s+pop2\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc 34 18 8f c7\s+pop2\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 04 10 8f c0\s+pop2\s+%r24,%r31
+\s*[a-f0-9]+:\s*62 f4 e4 18 8f c0\s+pop2p\s+%rax,%rbx
+\s*[a-f0-9]+:\s*62 d4 f4 10 8f c0\s+pop2p\s+%r8,%r17
+\s*[a-f0-9]+:\s*62 dc b4 18 8f c7\s+pop2p\s+%r31,%r9
+\s*[a-f0-9]+:\s*62 dc 84 10 8f c0\s+pop2p\s+%r24,%r31
diff --git a/gas/testsuite/gas/i386/x86-64-apx-push2pop2.s b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.s
new file mode 100644
index 00000000000..4cfc0a2185f
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-push2pop2.s
@@ -0,0 +1,39 @@
+# Check 64bit APX-Push2Pop2 instructions
+
+	.allow_index_reg
+	.text
+_start:
+	push2 %rbx, %rax
+	push2 %r17, %r8
+	push2 %r9, %r31
+	push2 %r31, %r24
+	push2p %rbx, %rax
+	push2p %r17, %r8
+	push2p %r9, %r31
+	push2p %r31, %r24
+	pop2 %rax, %rbx
+	pop2 %r8, %r17
+	pop2 %r31, %r9
+	pop2 %r24, %r31
+	pop2p %rax, %rbx
+	pop2p %r8, %r17
+	pop2p %r31, %r9
+	pop2p %r24, %r31
+
+.intel_syntax noprefix
+	push2 rax, rbx
+	push2 r8, r17
+	push2 r31, r9
+	push2 r24, r31
+	push2p rax, rbx
+	push2p r8, r17
+	push2p r31, r9
+	push2p r24, r31
+	pop2 rbx, rax
+	pop2 r17, r8
+	pop2 r9, r31
+	pop2 r31, r24
+	pop2p rbx, rax
+	pop2p r17, r8
+	pop2p r9, r31
+	pop2p r31, r24
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 07cb716d2a5..668b366a212 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -342,6 +342,9 @@ run_dump_test "x86-64-avx512dq-rcigrd-intel"
 run_dump_test "x86-64-avx512dq-rcigrd"
 run_dump_test "x86-64-avx512dq-rcigrne-intel"
 run_dump_test "x86-64-avx512dq-rcigrne"
+run_dump_test "x86-64-apx-push2pop2"
+run_dump_test "x86-64-apx-push2pop2-intel"
+run_list_test "x86-64-apx-push2pop2-inval"
 run_dump_test "x86-64-avx512dq-rcigru-intel"
 run_dump_test "x86-64-avx512dq-rcigru"
 run_dump_test "x86-64-avx512dq-rcigrz-intel"
diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h
index a60c19add3c..515039b431c 100644
--- a/opcodes/i386-dis-evex-mod.h
+++ b/opcodes/i386-dis-evex-mod.h
@@ -1,4 +1,9 @@
 /* Nothing at present.  */
+  /* MOD_EVEX_MAP4_8F_R_0 */
+  {
+    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_8F_R_0_M_1) },
+  },
   /* MOD_EVEX_MAP4_DA_PREFIX_1 */
   {
     { Bad_Opcode },
@@ -41,3 +46,8 @@
   {
     { "movdiri",	{ Edq, Gdq }, 0 },
   },
+  /* MOD_EVEX_MAP4_FF_R_6 */
+  {
+    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_MAP4_FF_R_6_M_1) },
+  },
diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h
index 09d8c10bdfd..f8cc5b492c0 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -338,6 +338,10 @@
     { "vcmpp%XH", { MaskG, Vex, EXxh, EXxEVexS, CMP }, 0 },
     { "vcmps%XH", { MaskG, VexScalar, EXw, EXxEVexS, CMP }, 0 },
   },
+  /* PREFIX_EVEX_MAP4_8F_R_0_M_1 */
+  {
+    { VEX_W_TABLE (EVEX_W_MAP4_8F_R_0_M_1_P_0) }
+  },
   /* PREFIX_EVEX_MAP4_D8 */
   {
     { "sha1nexte", { XM, EXxmm }, 0 },
@@ -403,6 +407,10 @@
     { "aand",	{ Mdq, Gdq }, 0 },
     { "aor",	{ Mdq, Gdq }, 0 },
   },
+  /* PREFIX_EVEX_MAP4_FF_R_6_M_1 */
+  {
+    { VEX_W_TABLE (EVEX_W_MAP4_FF_R_6_M_1_P_0) },
+  },
   /* PREFIX_EVEX_MAP5_10 */
   {
     { Bad_Opcode },
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index b75558c40ca..6bc0c26116f 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -86,6 +86,10 @@
     { "subQ",	{ VexGv, Ev, sIb }, 0 },
     { "xorQ",	{ VexGv, Ev, sIb }, 0 },
   },
+  /* REG_EVEX_MAP4_8F */
+  {
+    { MOD_TABLE (MOD_EVEX_MAP4_8F_R_0) },
+  },
   /* REG_EVEX_MAP4_D8_PREFIX_1 */
   {
     { "aesencwide128kl",	{ M }, 0 },
@@ -116,4 +120,9 @@
   {
     { "incQ",   { VexGv ,Ev }, 0 },
     { "decQ",   { VexGv ,Ev }, 0 },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { MOD_TABLE (MOD_EVEX_MAP4_FF_R_6) },
   },
diff --git a/opcodes/i386-dis-evex-w.h b/opcodes/i386-dis-evex-w.h
index b828277d413..ad3db92888c 100644
--- a/opcodes/i386-dis-evex-w.h
+++ b/opcodes/i386-dis-evex-w.h
@@ -442,6 +442,16 @@
     { Bad_Opcode },
     { "vpshrdw",   { XM, Vex, EXx, Ib }, 0 },
   },
+  /* EVEX_W_MAP4_8F_R_0_M_1_P_0 */
+  {
+    { "pop2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 },
+    { "pop2p", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 },
+  },
+  /* EVEX_W_MAP4_FF_R_6_M_1_P_0 */
+  {
+    { "push2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 },
+    { "push2p", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 },
+  },
   /* EVEX_W_MAP5_5B_P_0 */
   {
     { "vcvtdq2ph%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index ef752f417c5..7ad7b5b2cf8 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -1035,7 +1035,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { REG_TABLE (REG_EVEX_MAP4_8F) },
     /* 90 */
     { Bad_Opcode },
     { Bad_Opcode },
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 0de3959cf80..825b14ad0dd 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -105,6 +105,7 @@ static bool FXSAVE_Fixup (instr_info *, int, int);
 static bool MOVSXD_Fixup (instr_info *, int, int);
 static bool DistinctDest_Fixup (instr_info *, int, int);
 static bool PREFETCHI_Fixup (instr_info *, int, int);
+static bool PUSH2_POP2_Fixup (instr_info *, int, int);
 
 static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const disassemble_info *,
 						enum disassembler_style,
@@ -890,6 +891,7 @@ enum
   REG_EVEX_MAP4_80,
   REG_EVEX_MAP4_81,
   REG_EVEX_MAP4_83,
+  REG_EVEX_MAP4_8F,
   REG_EVEX_MAP4_D8_PREFIX_1,
   REG_EVEX_MAP4_F6,
   REG_EVEX_MAP4_F7,
@@ -935,6 +937,7 @@ enum
 
   MOD_VEX_0F3849_X86_64_L_0_W_0,
 
+  MOD_EVEX_MAP4_8F_R_0,
   MOD_EVEX_MAP4_DA_PREFIX_1,
   MOD_EVEX_MAP4_DB_PREFIX_1,
   MOD_EVEX_MAP4_DC_PREFIX_1,
@@ -945,6 +948,7 @@ enum
   MOD_EVEX_MAP4_F8_PREFIX_2,
   MOD_EVEX_MAP4_F8_PREFIX_3,
   MOD_EVEX_MAP4_F9,
+  MOD_EVEX_MAP4_FF_R_6,
 };
 
 enum
@@ -1180,6 +1184,7 @@ enum
   PREFIX_EVEX_0F3A67,
   PREFIX_EVEX_0F3AC2,
 
+  PREFIX_EVEX_MAP4_8F_R_0_M_1,
   PREFIX_EVEX_MAP4_D8,
   PREFIX_EVEX_MAP4_DA,
   PREFIX_EVEX_MAP4_DB,
@@ -1192,6 +1197,7 @@ enum
   PREFIX_EVEX_MAP4_F2,
   PREFIX_EVEX_MAP4_F8,
   PREFIX_EVEX_MAP4_FC,
+  PREFIX_EVEX_MAP4_FF_R_6_M_1,
 
   PREFIX_EVEX_MAP5_10,
   PREFIX_EVEX_MAP5_11,
@@ -1752,6 +1758,9 @@ enum
   EVEX_W_0F3A70,
   EVEX_W_0F3A72,
 
+  EVEX_W_MAP4_8F_R_0_M_1_P_0,
+  EVEX_W_MAP4_FF_R_6_M_1_P_0,
+
   EVEX_W_MAP5_5B_P_0,
   EVEX_W_MAP5_7A_P_3,
 };
@@ -9011,6 +9020,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	case 0x4:
 	  vex_table_index = EVEX_MAP4;
 	  ins->evex_type = evex_from_legacy;
+	  if (ins->address_mode != mode_64bit)
+	    return &bad_opcode;
 	  break;
 	case 0x5:
 	  vex_table_index = EVEX_MAP5;
@@ -9073,8 +9084,9 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	{
 	  /* EVEX from legacy instructions, when the EVEX.ND bit is 0,
 	     all bits of EVEX.vvvv and EVEX.V' must be 1.  */
-	  if (!ins->vex.b && (ins->vex.register_specifier
-				  || !ins->vex.v))
+	  if (ins->vex.ll || (!ins->vex.b
+			      && (ins->vex.register_specifier
+				  || !ins->vex.v)))
 	    return &bad_opcode;
 	  ins->rex |= REX_OPCODE;
 	}
@@ -13437,6 +13449,9 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED)
 	case b_mode:
 	  names = att_names8rex;
 	  break;
+	case q_mode:
+	  names = att_names64;
+	  break;
 	case mask_bd_mode:
 	case mask_mode:
 	  if (reg > 0x7)
@@ -13821,3 +13836,24 @@ PREFETCHI_Fixup (instr_info *ins, int bytemode, int sizeflag)
 
   return OP_M (ins, bytemode, sizeflag);
 }
+
+static bool
+PUSH2_POP2_Fixup (instr_info *ins, int bytemode, int sizeflag)
+{
+  unsigned int vvvv_reg = ins->vex.register_specifier
+    | !ins->vex.v << 4;
+  unsigned int rm_reg = ins->modrm.rm + (ins->rex & REX_B ? 8 : 0)
+    + (ins->rex2 & REX_B ? 16 : 0);
+
+  /* Here vex.b is treated as "EVEX.ND.  */
+  /* Push2/Pop2 cannot use RSP and Pop2 cannot pop two same registers.  */
+  if (!ins->vex.b || vvvv_reg == 0x4 || rm_reg == 0x4
+      || (!ins->modrm.reg
+	  && vvvv_reg == rm_reg))
+    {
+      oappend (ins, "(bad)");
+      return true;
+    }
+
+  return OP_VEX (ins, bytemode, sizeflag);
+}
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 2e6ae807bbe..144ec129a32 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -474,6 +474,7 @@ static bitfield opcode_modifiers[] =
   BITFIELD (ISA64),
   BITFIELD (NoEgpr),
   BITFIELD (NF),
+  BITFIELD (Push2Pop2),
 };
 
 #define CLASS(n) #n, n
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index bb826bbdb34..4b6d52d29cb 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -755,6 +755,9 @@ enum
   /* No CSPAZO flags update indication.  */
   NF,
 
+  /* APX Push2Pop2 bit  */
+  Push2Pop2,
+
   /* The last bitfield in i386_opcode_modifier.  */
   Opcode_Modifier_Num
 };
@@ -804,6 +807,7 @@ typedef struct i386_opcode_modifier
   unsigned int isa64:2;
   unsigned int noegpr:1;
   unsigned int nf:1;
+  unsigned int push2pop2:1;
 } i386_opcode_modifier;
 
 /* Operand classes.  */
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index b1f7491e7d7..03ebef028f9 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -3494,3 +3494,10 @@ erets, 0xf20f01ca, FRED|x64, NoSuf, {}
 eretu, 0xf30f01ca, FRED|x64, NoSuf, {}
 
 // FRED instructions end.
+
+// APX Push2/Pop2 instruction.
+
+push2, 0xff/6, APX_F, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
+push2p, 0xff/6, APX_F, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
+pop2, 0x8f/0, APX_F, Modrm|VexW0|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
+pop2p, 0x8f/0, APX_F, Modrm|VexW1|EVex128|Push2Pop2|EVexMap4|VexVVVVSrc|No_bSuf|No_wSuf|No_lSuf|No_sSuf, { Reg64, Reg64 }
-- 
2.25.1


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

end of thread, other threads:[~2023-12-12  3:00 UTC | newest]

Thread overview: 91+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-19 15:25 [PATCH 0/8] [RFC] Support Intel APX EGPR Cui, Lili
2023-09-19 15:25 ` [PATCH 1/8] Support APX GPR32 with rex2 prefix Cui, Lili
2023-09-21 15:27   ` Jan Beulich
2023-09-27 15:57     ` Cui, Lili
2023-09-21 15:51   ` Jan Beulich
2023-09-27 15:59     ` Cui, Lili
2023-09-28  8:02       ` Jan Beulich
2023-10-07  3:27         ` Cui, Lili
2023-09-19 15:25 ` [PATCH 2/8] Support APX GPR32 with extend evex prefix Cui, Lili
2023-09-22 10:12   ` Jan Beulich
2023-10-17 15:48     ` Cui, Lili
2023-10-18  6:40       ` Jan Beulich
2023-10-18 10:44         ` Cui, Lili
2023-10-18 10:50           ` Jan Beulich
2023-09-22 10:50   ` Jan Beulich
2023-10-17 15:50     ` Cui, Lili
2023-10-17 16:11       ` Jan Beulich
2023-10-18  2:02         ` Cui, Lili
2023-10-18  6:10           ` Jan Beulich
2023-09-25  6:03   ` Jan Beulich
2023-10-17 15:52     ` Cui, Lili
2023-10-17 16:12       ` Jan Beulich
2023-10-18  6:31         ` Cui, Lili
2023-10-18  6:47           ` Jan Beulich
2023-10-18  7:52             ` Cui, Lili
2023-10-18  8:21               ` Jan Beulich
2023-10-18 11:30                 ` Cui, Lili
2023-10-19 11:58                   ` Cui, Lili
2023-10-19 15:24                     ` Jan Beulich
2023-10-19 16:38                       ` Cui, Lili
2023-10-20  6:25                         ` Jan Beulich
2023-10-22 14:33                           ` Cui, Lili
2023-09-19 15:25 ` [PATCH 3/8] Add tests for " Cui, Lili
2023-09-27 13:11   ` Jan Beulich
2023-10-17 15:53     ` FW: " Cui, Lili
2023-10-17 16:19       ` Jan Beulich
2023-10-18  2:32         ` Cui, Lili
2023-10-18  6:05           ` Jan Beulich
2023-10-18  7:16             ` Cui, Lili
2023-10-18  8:05               ` Jan Beulich
2023-10-18 11:26                 ` Cui, Lili
2023-10-18 12:06                   ` Jan Beulich
2023-10-25 16:03                     ` Cui, Lili
2023-09-27 13:19   ` Jan Beulich
2023-09-19 15:25 ` [PATCH 4/8] Support APX NDD Cui, Lili
2023-09-27 14:44   ` Jan Beulich
2023-10-22 14:05     ` Cui, Lili
2023-10-23  7:12       ` Jan Beulich
2023-10-25  8:10         ` Cui, Lili
2023-10-25  8:47           ` Jan Beulich
2023-10-25 15:49             ` Cui, Lili
2023-10-25 15:59               ` Jan Beulich
2023-09-28  7:57   ` Jan Beulich
2023-10-22 14:57     ` Cui, Lili
2023-10-24 11:39     ` Cui, Lili
2023-10-24 11:58       ` Jan Beulich
2023-10-25 15:29         ` Cui, Lili
2023-09-19 15:25 ` [PATCH 5/8] Support APX NDD optimized encoding Cui, Lili
2023-09-28  9:29   ` Jan Beulich
2023-10-23  2:57     ` Hu, Lin1
2023-10-23  7:23       ` Jan Beulich
2023-10-23  7:50         ` Hu, Lin1
2023-10-23  8:15           ` Jan Beulich
2023-10-24  1:40             ` Hu, Lin1
2023-10-24  6:03               ` Jan Beulich
2023-10-24  6:08                 ` Hu, Lin1
2023-10-23  3:07     ` [PATCH-V2] " Hu, Lin1
2023-10-23  3:30     ` [PATCH 5/8] [v2] " Hu, Lin1
2023-10-23  7:26       ` Jan Beulich
2023-09-19 15:25 ` [PATCH 6/8] Support APX Push2/Pop2 Cui, Lili
2023-09-28 11:37   ` Jan Beulich
2023-10-30 15:21     ` Cui, Lili
2023-10-30 15:31       ` Jan Beulich
2023-11-20 13:05         ` Cui, Lili
2023-09-19 15:25 ` [PATCH 7/8] Support APX NF Cui, Lili
2023-09-25  6:07   ` Jan Beulich
2023-09-28 12:42   ` Jan Beulich
2023-11-02 10:15     ` Cui, Lili
2023-11-02 10:23       ` Jan Beulich
2023-11-02 10:46         ` Cui, Lili
2023-12-12  2:59           ` H.J. Lu
2023-09-19 15:25 ` [PATCH 8/8] Support APX JMPABS Cui, Lili
2023-09-28 13:11   ` Jan Beulich
2023-11-02  2:32     ` Hu, Lin1
2023-11-02 11:29 [PATCH v2 0/8] Support Intel APX EGPR Cui, Lili
2023-11-02 11:29 ` [PATCH 6/8] Support APX Push2/Pop2 Cui, Lili
2023-11-08 11:44   ` Jan Beulich
2023-11-08 12:52     ` Jan Beulich
2023-11-22  5:48     ` Cui, Lili
2023-11-22  8:53       ` Jan Beulich
2023-11-22 12:26         ` Cui, Lili
2023-11-09  9:57   ` Jan Beulich

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).