Browse Source

* synchronize with trunk

git-svn-id: branches/unicodekvm@42905 -
nickysn 6 years ago
parent
commit
9bab5b9527
100 changed files with 38915 additions and 7141 deletions
  1. 942 11
      .gitattributes
  2. 6 4
      Makefile
  3. 16 6
      compiler/Makefile
  4. 11 2
      compiler/Makefile.fpc
  5. 36 0
      compiler/aarch64/cgcpu.pas
  6. 2 0
      compiler/aarch64/cpuinfo.pas
  7. 1 1
      compiler/aarch64/hlcgcpu.pas
  8. 9 0
      compiler/aarch64/ncpuadd.pas
  9. 94 0
      compiler/aarch64/ncpuinl.pas
  10. 1 0
      compiler/aarch64/ncpumat.pas
  11. 4 2
      compiler/aasmbase.pas
  12. 8 10
      compiler/aasmcnst.pas
  13. 17 0
      compiler/aasmdata.pas
  14. 53 0
      compiler/aasmtai.pas
  15. 31 9
      compiler/aggas.pas
  16. 1 1
      compiler/aopt.pas
  17. 1 1
      compiler/aoptbase.pas
  18. 9 0
      compiler/aoptobj.pas
  19. 16 4
      compiler/aoptutils.pas
  20. 18 11
      compiler/arm/aasmcpu.pas
  21. 20 12
      compiler/arm/agarmgas.pas
  22. 70 19
      compiler/arm/aoptcpu.pas
  23. 1 0
      compiler/arm/armatt.inc
  24. 1 0
      compiler/arm/armatts.inc
  25. 5 0
      compiler/arm/armins.dat
  26. 1 1
      compiler/arm/armnop.inc
  27. 1 0
      compiler/arm/armop.inc
  28. 7 0
      compiler/arm/armtab.inc
  29. 88 41
      compiler/arm/cgcpu.pas
  30. 2 2
      compiler/arm/cpubase.pas
  31. 46 7
      compiler/arm/cpuinfo.pas
  32. 32 7
      compiler/arm/cpupara.pas
  33. 3 6
      compiler/arm/cpupi.pas
  34. 1 1
      compiler/arm/hlcgcpu.pas
  35. 18 20
      compiler/arm/narmadd.pas
  36. 1 1
      compiler/arm/narmcal.pas
  37. 7 14
      compiler/arm/narmcnv.pas
  38. 2 2
      compiler/arm/narmcon.pas
  39. 50 59
      compiler/arm/narminl.pas
  40. 20 21
      compiler/arm/narmmat.pas
  41. 1 1
      compiler/armgen/armpara.pas
  42. 344 122
      compiler/avr/cgcpu.pas
  43. 2 0
      compiler/avr/cpuinfo.pas
  44. 23 0
      compiler/avr/navradd.pas
  45. 25 1
      compiler/avr/navrinl.pas
  46. 2 0
      compiler/ccharset.pas
  47. 1 1
      compiler/cfidwarf.pas
  48. 9 2
      compiler/cgobj.pas
  49. 1 2
      compiler/cresstr.pas
  50. 16 0
      compiler/dbgdwarf.pas
  51. 16 3
      compiler/defcmp.pas
  52. 19 0
      compiler/elfbase.pas
  53. 13 7
      compiler/entfile.pas
  54. 5 0
      compiler/fmodule.pas
  55. 4 0
      compiler/fpcdefs.inc
  56. 2 0
      compiler/generic/cpuinfo.pas
  57. 7 5
      compiler/globals.pas
  58. 4 2
      compiler/globtype.pas
  59. 3 13
      compiler/hlcgobj.pas
  60. 19 3
      compiler/i386/cpuinfo.pas
  61. 0 1
      compiler/i386/cputarg.pas
  62. 1 1
      compiler/i386/hlcgcpu.pas
  63. 314 34
      compiler/i386/i386att.inc
  64. 281 1
      compiler/i386/i386atts.inc
  65. 314 34
      compiler/i386/i386int.inc
  66. 1 1
      compiler/i386/i386nop.inc
  67. 314 34
      compiler/i386/i386op.inc
  68. 281 1
      compiler/i386/i386prop.inc
  69. 16639 3171
      compiler/i386/i386tab.inc
  70. 4 4
      compiler/i386/n386add.pas
  71. 16 0
      compiler/i386/r386ari.inc
  72. 17 1
      compiler/i386/r386att.inc
  73. 16 0
      compiler/i386/r386con.inc
  74. 17 1
      compiler/i386/r386dwrf.inc
  75. 17 1
      compiler/i386/r386int.inc
  76. 17 1
      compiler/i386/r386iri.inc
  77. 17 1
      compiler/i386/r386nasm.inc
  78. 1 1
      compiler/i386/r386nor.inc
  79. 17 1
      compiler/i386/r386nri.inc
  80. 17 1
      compiler/i386/r386num.inc
  81. 17 1
      compiler/i386/r386ot.inc
  82. 17 1
      compiler/i386/r386rni.inc
  83. 17 1
      compiler/i386/r386sri.inc
  84. 17 1
      compiler/i386/r386stab.inc
  85. 17 1
      compiler/i386/r386std.inc
  86. 1 1
      compiler/i8086/hlcgcpu.pas
  87. 314 34
      compiler/i8086/i8086att.inc
  88. 281 1
      compiler/i8086/i8086atts.inc
  89. 314 34
      compiler/i8086/i8086int.inc
  90. 1 1
      compiler/i8086/i8086nop.inc
  91. 314 34
      compiler/i8086/i8086op.inc
  92. 281 1
      compiler/i8086/i8086prop.inc
  93. 16764 3296
      compiler/i8086/i8086tab.inc
  94. 6 3
      compiler/i8086/n8086add.pas
  95. 3 2
      compiler/i8086/n8086util.pas
  96. 16 0
      compiler/i8086/r8086ari.inc
  97. 17 1
      compiler/i8086/r8086att.inc
  98. 16 0
      compiler/i8086/r8086con.inc
  99. 16 0
      compiler/i8086/r8086dwrf.inc
  100. 17 1
      compiler/i8086/r8086int.inc

File diff suppressed because it is too large
+ 942 - 11
.gitattributes


+ 6 - 4
Makefile

@@ -1793,8 +1793,9 @@ endif
 ifdef LIB_NAME
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 endif
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+	-$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
+	-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+	-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
 fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
@@ -1820,8 +1821,9 @@ ifneq ($(PPUEXT),.ppu)
 	-$(DEL) *.o *.ppu *.a
 endif
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+	-$(DEL) fpcmade.* Package.fpc *.fpm
+	-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+	-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 endif

+ 16 - 6
compiler/Makefile

@@ -496,6 +496,14 @@ endif
 NOCPUDEF=1
 MSGFILE=msg/error$(FPCLANG).msg
 SVNVERSION:=$(firstword $(wildcard $(addsuffix /svnversion$(SRCEXEEXT),$(SEARCHPATH))))
+PPUDUMPPROG:=$(firstword $(strip $(wildcard $(addsuffix /ppudump$(SRCEXEEXT),$(SEARCHPATH)))))
+ifndef PPUDUMP
+ifdef PPUDUMPPROG
+PPUDUMP=$(PPUDUMPPROG)
+else
+PPUDUMP=ppudump
+endif
+endif
 REVINC:=$(wildcard revision.inc)
 ifneq ($(REVINC),)
 override LOCALOPT+=-dREVINC
@@ -3701,8 +3709,9 @@ endif
 ifdef LIB_NAME
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 endif
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+	-$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
+	-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+	-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
 fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
@@ -3728,8 +3737,9 @@ ifneq ($(PPUEXT),.ppu)
 	-$(DEL) *.o *.ppu *.a
 endif
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
+	-$(DEL) fpcmade.* Package.fpc *.fpm
+	-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
+	-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 endif
@@ -4215,7 +4225,7 @@ ifdef CMP
 override DIFF:=$(CMP) -i218
 endif
 endif
-ifeq ($(findstring 2.4.,$(FPC_VERSION)),)
+ifneq ($(CYCLELEVEL),1)
 ifndef ALLOW_WARNINGS
 override LOCALOPT+=-Sew
 endif
@@ -4693,7 +4703,7 @@ rtlppulogs : $(RTLPPULOGLIST)
 vpath %.ppu $(PPUDIR) $(RTLPPUDIR) $(ALLPPUDIR)
 vpath %.log-ppu $(PPUDIR) $(RTLPPUDIR) $(ALLPPUDIR)
 %.log-ppu : %.ppu
-	ppudump -VA -M $< > $@
+	$(PPUDUMP) -VA -M $< > $@
 ./utils/ppudump$(EXEEXT):
 	$(MAKE) -C $(COMPILERUTILSDIR) ppudump$(EXEEXT)
 ppuinfo :

+ 11 - 2
compiler/Makefile.fpc

@@ -235,6 +235,15 @@ MSGFILE=msg/error$(FPCLANG).msg
 
 
 SVNVERSION:=$(firstword $(wildcard $(addsuffix /svnversion$(SRCEXEEXT),$(SEARCHPATH))))
+PPUDUMPPROG:=$(firstword $(strip $(wildcard $(addsuffix /ppudump$(SRCEXEEXT),$(SEARCHPATH)))))
+ifndef PPUDUMP
+ifdef PPUDUMPPROG
+PPUDUMP=$(PPUDUMPPROG)
+else
+PPUDUMP=ppudump
+endif
+endif
+
 # Check if revision.inc is present
 REVINC:=$(wildcard revision.inc)
 ifneq ($(REVINC),)
@@ -408,7 +417,7 @@ endif
 
 # Use -Sew option by default
 # Allow disabling by setting ALLOW_WARNINGS=1
-ifeq ($(findstring 2.4.,$(FPC_VERSION)),)
+ifneq ($(CYCLELEVEL),1)
 ifndef ALLOW_WARNINGS
 override LOCALOPT+=-Sew
 endif
@@ -1121,7 +1130,7 @@ vpath %.log-ppu $(PPUDIR) $(RTLPPUDIR) $(ALLPPUDIR)
 
 # Use installed ppudump
 %.log-ppu : %.ppu
-	ppudump -VA -M $< > $@
+	$(PPUDUMP) -VA -M $< > $@
 
 
 ./utils/ppudump$(EXEEXT):

+ 36 - 0
compiler/aarch64/cgcpu.pas

@@ -100,6 +100,7 @@ interface
         procedure g_concatcopy_move(list: TAsmList; const source, dest: treference; len: tcgint);
         procedure g_concatcopy(list: TAsmList; const source, dest: treference; len: tcgint);override;
         procedure g_adjust_self_value(list: TAsmList; procdef: tprocdef; ioffset: tcgint);override;
+        procedure g_check_for_fpu_exception(list: TAsmList; force, clear: boolean);override;
        private
         function save_regs(list: TAsmList; rt: tregistertype; lowsr, highsr: tsuperregister; sub: tsubregister): longint;
         procedure load_regs(list: TAsmList; rt: tregistertype; lowsr, highsr: tsuperregister; sub: tsubregister);
@@ -1032,6 +1033,7 @@ implementation
             instr:=taicpu.op_reg_reg(A_FCVT,reg2,reg1);
           end;
         list.Concat(instr);
+        maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -2256,6 +2258,40 @@ implementation
       end;
 
 
+    procedure tcgaarch64.g_check_for_fpu_exception(list: TAsmList;force,clear : boolean);
+      var
+        r : TRegister;
+        ai: taicpu;
+        l1,l2: TAsmLabel;
+      begin
+        { so far, we assume all flavours of AArch64 need explicit floating point exception checking }
+        if ((cs_check_fpu_exceptions in current_settings.localswitches) and
+            (force or current_procinfo.FPUExceptionCheckNeeded)) then
+          begin
+            r:=getintregister(list,OS_INT);
+            list.concat(taicpu.op_reg_reg(A_MRS,r,NR_FPSR));
+            list.concat(taicpu.op_reg_const(A_TST,r,$1f));
+            current_asmdata.getjumplabel(l1);
+            current_asmdata.getjumplabel(l2);
+            ai:=taicpu.op_sym(A_B,l1);
+            ai.is_jmp:=true;
+            ai.condition:=C_NE;
+            list.concat(ai);
+            list.concat(taicpu.op_reg_const(A_TST,r,$80));
+            ai:=taicpu.op_sym(A_B,l2);
+            ai.is_jmp:=true;
+            ai.condition:=C_EQ;
+            list.concat(ai);
+            a_label(list,l1);
+            alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+            cg.a_call_name(list,'FPC_THROWFPUEXCEPTION',false);
+            dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+            a_label(list,l2);
+            if clear then
+              current_procinfo.FPUExceptionCheckNeeded:=false;
+          end;
+      end;
+
 
     procedure create_codegen;
       begin

+ 2 - 0
compiler/aarch64/cpuinfo.pas

@@ -14,6 +14,8 @@
 
 Unit CPUInfo;
 
+{$i fpcdefs.inc}
+
 Interface
 
   uses

+ 1 - 1
compiler/aarch64/hlcgcpu.pas

@@ -161,7 +161,7 @@ implementation
       if make_global then
         list.concat(Tai_symbol.Createname_global(labelname,AT_FUNCTION,0,procdef))
       else
-        list.concat(Tai_symbol.Createname(labelname,AT_FUNCTION,0,procdef));
+        list.concat(Tai_symbol.Createname_hidden(labelname,AT_FUNCTION,0,procdef));
 
       { set param1 interface to self  }
       procdef.init_paraloc_info(callerside);

+ 9 - 0
compiler/aarch64/ncpuadd.pas

@@ -34,6 +34,7 @@ interface
           function  GetResFlags(unsigned:Boolean):TResFlags;
           function  GetFPUResFlags:TResFlags;
        protected
+          function use_fma : boolean;override;
           procedure second_addfloat;override;
           procedure second_cmpfloat;override;
           procedure second_cmpboolean;override;
@@ -62,6 +63,12 @@ interface
                                taarch64addnode
 *****************************************************************************}
 
+    function taarch64addnode.use_fma : boolean;
+      begin
+        Result:=true;
+      end;
+
+
     function taarch64addnode.GetResFlags(unsigned:Boolean):TResFlags;
       begin
         case NodeType of
@@ -211,6 +218,7 @@ interface
 
         current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(op,
            location.register,left.location.register,right.location.register));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
       end;
 
 
@@ -231,6 +239,7 @@ interface
         { signalling compare so we can get exceptions }
         current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FCMPE,
              left.location.register,right.location.register));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
       end;
 
 

+ 94 - 0
compiler/aarch64/ncpuinl.pas

@@ -35,6 +35,7 @@ interface
         function first_sqrt_real: tnode; override;
         function first_round_real: tnode; override;
         function first_trunc_real: tnode; override;
+        function first_fma : tnode; override;
         procedure second_abs_real; override;
         procedure second_sqr_real; override;
         procedure second_sqrt_real; override;
@@ -42,6 +43,7 @@ interface
         procedure second_round_real; override;
         procedure second_trunc_real; override;
         procedure second_get_frame; override;
+        procedure second_fma; override;
       private
         procedure load_fpu_location;
       end;
@@ -53,6 +55,7 @@ implementation
       globtype,verbose,globals,
       cpuinfo, defutil,symdef,aasmdata,aasmcpu,
       cgbase,cgutils,pass_1,pass_2,
+      ncal,
       cpubase,ncgutil,cgobj,cgcpu, hlcgobj;
 
 {*****************************************************************************
@@ -104,10 +107,22 @@ implementation
       end;
 
 
+     function taarch64inlinenode.first_fma : tnode;
+       begin
+         if ((is_double(resultdef)) or (is_single(resultdef))) then
+           begin
+             expectloc:=LOC_MMREGISTER;
+             Result:=nil;
+           end
+         else
+           Result:=inherited first_fma;
+       end;
+
     procedure taarch64inlinenode.second_abs_real;
       begin
         load_fpu_location;
         current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FABS,location.register,left.location.register));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
       end;
 
 
@@ -115,6 +130,7 @@ implementation
       begin
         load_fpu_location;
         current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(A_FMUL,location.register,left.location.register,left.location.register));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
       end;
 
 
@@ -122,6 +138,7 @@ implementation
       begin
         load_fpu_location;
         current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FSQRT,location.register,left.location.register));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
       end;
 
 
@@ -154,6 +171,7 @@ implementation
         { convert to signed integer rounding towards zero (there's no "round to
           integer using current rounding mode") }
         current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FCVTZS,location.register,hreg));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
       end;
 
 
@@ -178,6 +196,82 @@ implementation
         location.register:=NR_FRAME_POINTER_REG;
       end;
 
+
+    procedure taarch64inlinenode.second_fma;
+      const
+        op : array[false..true,false..true] of TAsmOp =
+          { positive product }
+          (
+           { positive third operand }
+           (A_FMADD,
+           { negative third operand }
+            A_FNMSUB),
+           { negative product }
+            { positive third operand }
+            (A_FMSUB,
+             A_FNMADD)
+           );
+
+      var
+        paraarray : array[1..3] of tnode;
+        i : integer;
+        negop3,
+        negproduct : boolean;
+      begin
+        negop3:=false;
+        negproduct:=false;
+        paraarray[1]:=tcallparanode(tcallparanode(tcallparanode(parameters).nextpara).nextpara).paravalue;
+        paraarray[2]:=tcallparanode(tcallparanode(parameters).nextpara).paravalue;
+        paraarray[3]:=tcallparanode(parameters).paravalue;
+
+        { check if a neg. node can be removed
+          this is possible because changing the sign of
+          a floating point number does not affect its absolute
+          value in any way
+        }
+        if paraarray[1].nodetype=unaryminusn then
+          begin
+            paraarray[1]:=tunarynode(paraarray[1]).left;
+            { do not release the unused unary minus node, it is kept and release together with the other nodes,
+              only no code is generated for it }
+            negproduct:=not(negproduct);
+          end;
+
+        if paraarray[2].nodetype=unaryminusn then
+          begin
+            paraarray[2]:=tunarynode(paraarray[2]).left;
+            { do not release the unused unary minus node, it is kept and release together with the other nodes,
+              only no code is generated for it }
+            negproduct:=not(negproduct);
+          end;
+
+        if paraarray[3].nodetype=unaryminusn then
+          begin
+            paraarray[3]:=tunarynode(paraarray[3]).left;
+            { do not release the unused unary minus node, it is kept and release together with the other nodes,
+              only no code is generated for it }
+            negop3:=true;
+          end;
+
+         for i:=1 to 3 do
+          secondpass(paraarray[i]);
+
+        { no memory operand is allowed }
+        for i:=1 to 3 do
+          begin
+            if not(paraarray[i].location.loc in [LOC_MMREGISTER,LOC_CMMREGISTER]) then
+              hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,paraarray[i].location,paraarray[i].resultdef,true);
+          end;
+
+        location_reset(location,LOC_MMREGISTER,paraarray[1].location.size);
+        location.register:=cg.getmmregister(current_asmdata.CurrAsmList,location.size);
+
+        current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg_reg(op[negproduct,negop3],
+          location.register,paraarray[1].location.register,paraarray[2].location.register,paraarray[3].location.register));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+      end;
+
+
 begin
   cinlinenode:=taarch64inlinenode;
 end.

+ 1 - 0
compiler/aarch64/ncpumat.pas

@@ -187,6 +187,7 @@ implementation
         location_reset(location,LOC_MMREGISTER,def_cgsize(resultdef));
         location.register:=cg.getmmregister(current_asmdata.CurrAsmList,location.size);
         current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FNEG,location.register,left.location.register));
+        cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
       end;
 
 begin

+ 4 - 2
compiler/aasmbase.pas

@@ -39,8 +39,10 @@ interface
     type
        TAsmsymbind=(
          AB_NONE,AB_EXTERNAL,AB_COMMON,AB_LOCAL,AB_GLOBAL,AB_WEAK_EXTERNAL,
-         { global in the current program/library, but not visible outside it }
-         AB_PRIVATE_EXTERN,AB_LAZY,AB_IMPORT,
+         { global in the current program/library, but not visible outside it
+           (= "hidden" in ELF) }
+         AB_PRIVATE_EXTERN,
+         AB_LAZY,AB_IMPORT,
          { a symbol that's internal to the compiler and used as a temp }
          AB_TEMP,
          { a global symbol that points to another global symbol and is only used

+ 8 - 10
compiler/aasmcnst.pas

@@ -393,7 +393,7 @@ type
         maxcrecordalign: specify maximum C record alignment (no equivalent in
           source code)
      }
-     function begin_anonymous_record(const optionalname: string; packrecords, recordalign, recordalignmin, maxcrecordalign: shortint): trecorddef; virtual;
+     function begin_anonymous_record(const optionalname: string; packrecords, recordalign, recordalignmin: shortint): trecorddef; virtual;
      function end_anonymous_record: trecorddef; virtual;
 
      { add a placeholder element at the current position that later can be
@@ -1399,7 +1399,7 @@ implementation
        result.ofs:=0;
        { pack the data, so that we don't add unnecessary null bytes after the
          constant string }
-       begin_anonymous_record('$'+get_dynstring_rec_name(stringtype,false,len),1,sizeof(TConstPtrUInt),1,1);
+       begin_anonymous_record('$'+get_dynstring_rec_name(stringtype,false,len),1,sizeof(TConstPtrUInt),1);
        string_symofs:=get_string_symofs(stringtype,false);
        { encoding }
        emit_tai(tai_const.create_16bit(encoding),u16inttype);
@@ -1611,7 +1611,7 @@ implementation
        if (typ<>st_widestring) or
           not winlike then
          begin
-           result:=crecorddef.create_global_internal('$'+name,1,1,1);
+           result:=crecorddef.create_global_internal('$'+name,1,1);
            { encoding }
            result.add_field_by_def('',u16inttype);
            { element size }
@@ -1637,8 +1637,7 @@ implementation
        else
          begin
            result:=crecorddef.create_global_internal('$'+name,4,
-             targetinfos[target_info.system]^.alignment.recordalignmin,
-             targetinfos[target_info.system]^.alignment.maxCrecordalign);
+             targetinfos[target_info.system]^.alignment.recordalignmin);
            { length in bytes }
            result.add_field_by_def('',s32inttype);
            streledef:=cwidechartype;
@@ -1689,8 +1688,7 @@ implementation
            result.lab:=startlab;
            datatcb.begin_anonymous_record('$'+get_dynstring_rec_name(st_widestring,true,strlength),
              4,4,
-             targetinfos[target_info.system]^.alignment.recordalignmin,
-             targetinfos[target_info.system]^.alignment.maxCrecordalign);
+             targetinfos[target_info.system]^.alignment.recordalignmin);
            datatcb.emit_tai(Tai_const.Create_32bit(strlength*cwidechartype.size),s32inttype);
            { can we optimise by placing the string constant label at the
              required offset? }
@@ -1749,7 +1747,7 @@ implementation
        result.ofs:=0;
        { pack the data, so that we don't add unnecessary null bytes after the
          constant string }
-       begin_anonymous_record('',1,sizeof(TConstPtrUInt),1,1);
+       begin_anonymous_record('',1,sizeof(TConstPtrUInt),1);
        dynarray_symofs:=get_dynarray_symofs;
        { what to do if ptrsinttype <> sizesinttype??? }
        emit_tai(tai_const.create_sizeint(-1),ptrsinttype);
@@ -1928,7 +1926,7 @@ implementation
      end;
 
 
-   function ttai_typedconstbuilder.begin_anonymous_record(const optionalname: string; packrecords, recordalign, recordalignmin, maxcrecordalign: shortint): trecorddef;
+   function ttai_typedconstbuilder.begin_anonymous_record(const optionalname: string; packrecords, recordalign, recordalignmin: shortint): trecorddef;
      var
        anonrecorddef: trecorddef;
        typesym: ttypesym;
@@ -1949,7 +1947,7 @@ implementation
              end;
          end;
        { create skeleton def }
-       anonrecorddef:=crecorddef.create_global_internal(optionalname,packrecords,recordalignmin,maxcrecordalign);
+       anonrecorddef:=crecorddef.create_global_internal(optionalname,packrecords,recordalignmin);
        trecordsymtable(anonrecorddef.symtable).recordalignment:=recordalign;
        { generic aggregate housekeeping }
        begin_aggregate_internal(anonrecorddef,true);

+ 17 - 0
compiler/aasmdata.pas

@@ -198,6 +198,7 @@ interface
         { asmsymbol }
         function  DefineAsmSymbolByClass(symclass: TAsmSymbolClass; const s : TSymStr;_bind:TAsmSymBind;_typ:Tasmsymtype; def: tdef) : TAsmSymbol; virtual;
         function  DefineAsmSymbol(const s : TSymStr;_bind:TAsmSymBind;_typ:Tasmsymtype; def: tdef) : TAsmSymbol;
+        function  DefineProcAsmSymbol(pd: tdef; const s: TSymStr; global: boolean): TAsmSymbol;
         function  WeakRefAsmSymbol(const s : TSymStr;_typ:Tasmsymtype) : TAsmSymbol;
         function  RefAsmSymbol(const s : TSymStr;_typ:Tasmsymtype;indirect:boolean=false) : TAsmSymbol;
         function  GetAsmSymbol(const s : TSymStr) : TAsmSymbol;
@@ -248,6 +249,7 @@ implementation
 
     uses
       verbose,
+      globals,
       symconst,
       aasmtai;
 
@@ -572,6 +574,21 @@ implementation
       end;
 
 
+    function TAsmData.DefineProcAsmSymbol(pd: tdef; const s: TSymStr; global: boolean): TAsmSymbol;
+      begin
+        { The condition to use global or local symbol must match
+          the code written in hlcg.gen_proc_symbol to
+          avoid change from AB_LOCAL to AB_GLOBAL, which generates
+          erroneous code (at least for targets using GOT) }
+        if global or
+           (cs_profile in current_settings.moduleswitches) then
+          result:=DefineAsmSymbol(s,AB_GLOBAL,AT_FUNCTION,pd)
+        else if tf_supports_hidden_symbols in target_info.flags then
+          result:=DefineAsmSymbol(s,AB_PRIVATE_EXTERN,AT_FUNCTION,pd)
+        else
+          result:=DefineAsmSymbol(s,AB_LOCAL,AT_FUNCTION,pd);
+      end;
+
     function TAsmData.RefAsmSymbol(const s : TSymStr;_typ:Tasmsymtype;indirect:boolean) : TAsmSymbol;
       var
         namestr : TSymStr;

+ 53 - 0
compiler/aasmtai.pas

@@ -446,6 +446,9 @@ interface
         { please keep the size of this record <=12 bytes and keep it properly aligned }
         toper = record
           ot : longint;
+        {$ifdef x86}
+          vopext: smallint;
+        {$ENDIF}
           case typ : toptype of
             top_none   : ();
             top_reg    : (reg:tregister);
@@ -551,6 +554,7 @@ interface
           constructor Create_Global(_sym:tasmsymbol;siz:longint);
           constructor Createname(const _name : string;_symtyp:Tasmsymtype;siz:longint;def:tdef);
           constructor Createname_global(const _name : string;_symtyp:Tasmsymtype;siz:longint;def:tdef);
+          constructor Createname_hidden(const _name : string;_symtyp:Tasmsymtype;siz:longint;def:tdef);
           constructor Createname_global_value(const _name : string;_symtyp:Tasmsymtype;siz:longint;val:ptruint;def:tdef);
           constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
           procedure ppuwrite(ppufile:tcompilerppufile);override;
@@ -634,6 +638,7 @@ interface
           sym       : tasmsymbol;
           size      : asizeint;
           constructor Create(const _name : string;_size : asizeint; def: tdef);
+          constructor Create_hidden(const _name : string;_size : asizeint; def: tdef);
           constructor Create_global(const _name : string;_size : asizeint; def: tdef);
           constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
           procedure ppuwrite(ppufile:tcompilerppufile);override;
@@ -700,6 +705,9 @@ interface
           constructor Create_int_codeptr_unaligned(_value: int64);
           constructor Create_int_dataptr(_value: int64);
           constructor Create_int_dataptr_unaligned(_value: int64);
+{$ifdef avr}
+          constructor Create_int_dataptr_unaligned(_value: int64; size: taiconst_type);
+{$endif}
 {$ifdef i8086}
           constructor Create_seg_name(const name:string);
           constructor Create_dgroup;
@@ -1289,6 +1297,23 @@ implementation
          is_global:=false;
       end;
 
+    constructor tai_datablock.Create_hidden(const _name: string; _size: asizeint; def: tdef);
+      begin
+        if tf_supports_hidden_symbols in target_info.flags then
+          begin
+            inherited Create;
+            typ:=ait_datablock;
+            sym:=current_asmdata.DefineAsmSymbol(_name,AB_PRIVATE_EXTERN,AT_DATA,def);
+            { keep things aligned }
+            if _size<=0 then
+              _size:=sizeof(aint);
+            size:=_size;
+            is_global:=true;
+          end
+        else
+          Create(_name,_size,def);
+      end;
+
 
     constructor tai_datablock.Create_global(const _name : string;_size : asizeint; def: tdef);
       begin
@@ -1377,6 +1402,20 @@ implementation
          is_global:=true;
       end;
 
+    constructor tai_symbol.Createname_hidden(const _name: string; _symtyp: Tasmsymtype; siz: longint; def: tdef);
+      begin
+        if tf_supports_hidden_symbols in target_info.flags then
+          begin
+            inherited Create;
+            typ:=ait_symbol;
+            sym:=current_asmdata.DefineAsmSymbol(_name,AB_PRIVATE_EXTERN,_symtyp,def);
+            size:=siz;
+            is_global:=true;
+          end
+        else
+          Createname(_name, _symtyp, siz, def);
+      end;
+
 
     constructor tai_symbol.createname_global_value(const _name: string;_symtyp: tasmsymtype; siz: longint; val: ptruint;def:tdef);
       begin
@@ -1929,6 +1968,20 @@ implementation
       end;
 
 
+{$ifdef avr}
+    constructor tai_const.Create_int_dataptr_unaligned(_value: int64;
+      size: taiconst_type);
+      begin
+        inherited Create;
+        typ:=ait_const;
+        consttype:=size;
+        sym:=nil;
+        endsym:=nil;
+        symofs:=0;
+        value:=_value;
+      end;
+{$endif avr}
+
 {$ifdef i8086}
     constructor tai_const.Create_seg_name(const name:string);
       begin

+ 31 - 9
compiler/aggas.pas

@@ -55,6 +55,7 @@ interface
         procedure WriteExtraFooter;virtual;
         procedure WriteInstruction(hp: tai);
         procedure WriteWeakSymbolRef(s: tasmsymbol); virtual;
+        procedure WriteHiddenSymbol(sym: TAsmSymbol);
         procedure WriteAixStringConst(hp: tai_string);
         procedure WriteAixIntConst(hp: tai_const);
         procedure WriteUnalignedIntConst(hp: tai_const);
@@ -835,8 +836,11 @@ implementation
                      processes). The alternate code creates some kind of common symbols
                      in the data segment.
                    }
+
                    if tai_datablock(hp).is_global then
                      begin
+                       if tai_datablock(hp).sym.bind=AB_PRIVATE_EXTERN then
+                         WriteHiddenSymbol(tai_datablock(hp).sym);
                        writer.AsmWrite('.globl ');
                        writer.AsmWriteln(tai_datablock(hp).sym.name);
                        writer.AsmWriteln('.data');
@@ -915,6 +919,8 @@ implementation
                      begin
                        if Tai_datablock(hp).is_global then
                          begin
+                           if (tai_datablock(hp).sym.bind=AB_PRIVATE_EXTERN) then
+                             WriteHiddenSymbol(tai_datablock(hp).sym);
                            writer.AsmWrite(#9'.globl ');
                            if replaceforbidden then
                              writer.AsmWriteln(ReplaceForbiddenAsmSymbolChars(Tai_datablock(hp).sym.name))
@@ -1215,14 +1221,6 @@ implementation
 
            ait_symbol :
              begin
-               if (tai_symbol(hp).sym.bind=AB_PRIVATE_EXTERN) then
-                 begin
-                   writer.AsmWrite(#9'.private_extern ');
-                   if replaceforbidden then
-                     writer.AsmWriteln(ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name))
-                   else
-                     writer.AsmWriteln(tai_symbol(hp).sym.name);
-                 end;
                if (target_info.system=system_powerpc64_linux) and
                   (tai_symbol(hp).sym.typ=AT_FUNCTION) and
                   (cs_profile in current_settings.moduleswitches) then
@@ -1235,6 +1233,8 @@ implementation
                     writer.AsmWriteln(ReplaceForbiddenAsmSymbolChars(tai_symbol(hp).sym.name))
                   else
                     writer.AsmWriteln(tai_symbol(hp).sym.name);
+                  if (tai_symbol(hp).sym.bind=AB_PRIVATE_EXTERN) then
+                    WriteHiddenSymbol(tai_symbol(hp).sym);
                 end;
                if (target_info.system=system_powerpc64_linux) and
                   use_dotted_functions and
@@ -1508,7 +1508,29 @@ implementation
 
     procedure TGNUAssembler.WriteWeakSymbolRef(s: tasmsymbol);
       begin
-        writer.AsmWriteLn(#9'.weak '+s.name);
+        writer.AsmWrite(#9'.weak ');
+        if asminfo^.dollarsign='$' then
+          writer.AsmWriteLn(s.name)
+        else
+          writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(s.name))
+      end;
+
+
+    procedure TGNUAssembler.WriteHiddenSymbol(sym: TAsmSymbol);
+      begin
+        { on Windows/(PE)COFF, global symbols are hidden by default: global
+          symbols that are not explicitly exported from an executable/library,
+          become hidden }
+        if target_info.system in systems_windows then
+          exit;
+        if target_info.system in systems_darwin then
+          writer.AsmWrite(#9'.private_extern ')
+        else
+          writer.AsmWrite(#9'.hidden ');
+        if asminfo^.dollarsign='$' then
+          writer.AsmWriteLn(sym.name)
+        else
+          writer.AsmWriteLn(ReplaceForbiddenAsmSymbolChars(sym.name))
       end;
 
 

+ 1 - 1
compiler/aopt.pas

@@ -53,9 +53,9 @@ Unit aopt;
         { Builds a table with the locations of the labels in the TAsmList.
           Also fixes some RegDeallocs like "# %eax released; push (%eax)"  }
         Procedure BuildLabelTableAndFixRegAlloc;
-        procedure clear;
       protected
         procedure pass_1;
+        procedure clear;
       End;
       TAsmOptimizerClass = class of TAsmOptimizer;
 

+ 1 - 1
compiler/aoptbase.pas

@@ -176,7 +176,7 @@ unit aoptbase;
   End;
 
 
-  function labelCanBeSkipped(p: tai_label): boolean;
+  function labelCanBeSkipped(p: tai_label): boolean; inline;
   begin
     labelCanBeSkipped := not(p.labsym.is_used) or (p.labsym.labeltype<>alt_jump);
   end;

+ 9 - 0
compiler/aoptobj.pas

@@ -371,6 +371,15 @@ Unit AoptObj;
 
        Function ArrayRefsEq(const r1, r2: TReference): Boolean;
 
+       { Returns a pointer to the operand that contains the destination label }
+       function JumpTargetOp(ai: taicpu): poper;
+
+       { Returns True if hp is any jump to a label }
+       function IsJumpToLabel(hp: taicpu): boolean;
+
+       { Returns True if hp is an unconditional jump to a label }
+       function IsJumpToLabelUncond(hp: taicpu): boolean;
+
     { ***************************** Implementation **************************** }
 
   Implementation

+ 16 - 4
compiler/aoptutils.pas

@@ -38,22 +38,29 @@ unit aoptutils;
     { skips all labels and returns the next "real" instruction }
     function SkipLabels(hp: tai; var hp2: tai): boolean;
 
+    { sets hp2 to hp and returns True if hp is not nil }
+    function SetAndTest(const hp: tai; out hp2: tai): Boolean;
+
   implementation
 
-    function MatchOpType(const p : taicpu; type0: toptype) : Boolean;
+    uses
+      aasmbase;
+
+
+    function MatchOpType(const p : taicpu; type0: toptype) : Boolean; inline;
       begin
         Result:=(p.ops=1) and (p.oper[0]^.typ=type0);
       end;
 
 
-    function MatchOpType(const p : taicpu; type0,type1 : toptype) : Boolean;
+    function MatchOpType(const p : taicpu; type0,type1 : toptype) : Boolean; inline;
       begin
         Result:=(p.ops=2) and (p.oper[0]^.typ=type0) and (p.oper[1]^.typ=type1);
       end;
 
 
 {$if max_operands>2}
-    function MatchOpType(const p : taicpu; type0,type1,type2 : toptype) : Boolean;
+    function MatchOpType(const p : taicpu; type0,type1,type2 : toptype) : Boolean; inline;
       begin
         Result:=(p.ops=3) and (p.oper[0]^.typ=type0) and (p.oper[1]^.typ=type1) and (p.oper[2]^.typ=type2);
       end;
@@ -78,6 +85,11 @@ unit aoptutils;
           end;
       end;
 
+    { sets hp2 to hp and returns True if hp is not nil }
+    function SetAndTest(const hp: tai; out hp2: tai): Boolean; inline;
+      begin
+        hp2 := hp;
+        Result := Assigned(hp);
+      end;
 
 end.
-

+ 18 - 11
compiler/arm/aasmcpu.pas

@@ -138,6 +138,10 @@ uses
 
       IF_NONE   = $00000000;
 
+      IF_EXTENSIONS = $0000000F;
+
+      IF_NEON       = $00000001;
+
       IF_ARMMASK    = $000F0000;
       IF_ARM32      = $00010000;
       IF_THUMB      = $00020000;
@@ -861,6 +865,7 @@ implementation
             A_UXTB,A_UXTH,A_SXTB,A_SXTH,
             A_NEG,
             A_VABS,A_VADD,A_VCVT,A_VDIV,A_VLDR,A_VMOV,A_VMUL,A_VNEG,A_VSQRT,A_VSUB,
+            A_VEOR,
             A_MRS,A_MSR:
               if opnr=0 then
                 result:=operand_write
@@ -2211,17 +2216,19 @@ implementation
 
         FPUMasks: array[tfputype] of longword =
           (
-            IF_NONE,
-            IF_NONE,
-            IF_NONE,
-            IF_FPA,
-            IF_FPA,
-            IF_FPA,
-            IF_VFPv2,
-            IF_VFPv2 or IF_VFPv3,
-            IF_VFPv2 or IF_VFPv3,
-            IF_NONE,
-            IF_VFPv2 or IF_VFPv3 or IF_VFPv4
+            { fpu_none       } IF_NONE,
+            { fpu_soft       } IF_NONE,
+            { fpu_libgcc     } IF_NONE,
+            { fpu_fpa        } IF_FPA,
+            { fpu_fpa10      } IF_FPA,
+            { fpu_fpa11      } IF_FPA,
+            { fpu_vfpv2      } IF_VFPv2,
+            { fpu_vfpv3      } IF_VFPv2 or IF_VFPv3,
+            { fpu_neon_vfpv3 } IF_VFPv2 or IF_VFPv3 or IF_NEON,
+            { fpu_vfpv3_d16  } IF_VFPv2 or IF_VFPv3,
+            { fpu_fpv4_s16   } IF_NONE,
+            { fpu_vfpv4      } IF_VFPv2 or IF_VFPv3 or IF_VFPv4,
+            { fpu_neon_vfpv4 } IF_VFPv2 or IF_VFPv3 or IF_VFPv4 or IF_NEON
           );
       begin
         fArmVMask:=Masks[current_settings.cputype] or FPUMasks[current_settings.fputype];

+ 20 - 12
compiler/arm/agarmgas.pas

@@ -104,18 +104,26 @@ unit agarmgas;
     function TArmGNUAssembler.MakeCmdLine: TCmdStr;
       begin
         result:=inherited MakeCmdLine;
-        if (current_settings.fputype = fpu_soft) then
-          result:='-mfpu=softvfp '+result;
-        if (current_settings.fputype = fpu_vfpv2) then
-          result:='-mfpu=vfpv2 '+result;
-        if (current_settings.fputype = fpu_vfpv3) then
-          result:='-mfpu=vfpv3 '+result;
-        if (current_settings.fputype = fpu_vfpv3_d16) then
-          result:='-mfpu=vfpv3-d16 '+result;
-        if (current_settings.fputype = fpu_fpv4_s16) then
-          result:='-mfpu=fpv4-sp-d16 '+result;
-        if (current_settings.fputype = fpu_vfpv4) then
-          result:='-mfpu=vfpv4 '+result;
+        case current_settings.fputype of
+          fpu_soft:
+            result:='-mfpu=softvfp '+result;
+          fpu_vfpv2:
+            result:='-mfpu=vfpv2 '+result;
+          fpu_vfpv3:
+            result:='-mfpu=vfpv3 '+result;
+          fpu_neon_vfpv3:
+            result:='-mfpu=neon-vfpv3 '+result;
+          fpu_vfpv3_d16:
+            result:='-mfpu=vfpv3-d16 '+result;
+          fpu_fpv4_s16:
+            result:='-mfpu=fpv4-sp-d16 '+result;
+          fpu_vfpv4:
+            result:='-mfpu=vfpv4 '+result;
+          fpu_neon_vfpv4:
+            result:='-mfpu=neon-vfpv4 '+result;
+          else
+            ;
+        end;
 
         if GenerateThumb2Code then
           result:='-march='+cputype_to_gas_march[current_settings.cputype]+' -mthumb -mthumb-interwork '+result

+ 70 - 19
compiler/arm/aoptcpu.pas

@@ -26,7 +26,7 @@ Unit aoptcpu;
 {$i fpcdefs.inc}
 
 { $define DEBUG_PREREGSCHEDULER}
-{ $define DEBUG_AOPTCPU}
+{$define DEBUG_AOPTCPU}
 
 Interface
 
@@ -472,9 +472,11 @@ Implementation
       hp1 : tai;
     begin
       Result:=false;
-      if (MatchInstruction(movp, A_VMOV, [taicpu(p).condition], [taicpu(p).oppostfix]) or
-          ((taicpu(p).oppostfix in [PF_F64F32,PF_F64S16,PF_F64S32,PF_F64U16,PF_F64U32]) and MatchInstruction(movp, A_VMOV, [taicpu(p).condition], [PF_F64])) or
-          ((taicpu(p).oppostfix in [PF_F32F64,PF_F32S16,PF_F32S32,PF_F32U16,PF_F32U32]) and MatchInstruction(movp, A_VMOV, [taicpu(p).condition], [PF_F32]))
+      if ((MatchInstruction(movp, A_VMOV, [taicpu(p).condition], [taicpu(p).oppostfix]) and
+           ((getregtype(taicpu(movp).oper[0]^.reg)=R_MMREGISTER) or (taicpu(p).opcode=A_VLDR))
+          ) or
+          (((taicpu(p).oppostfix in [PF_F64F32,PF_F64S16,PF_F64S32,PF_F64U16,PF_F64U32]) or (getsubreg(taicpu(p).oper[0]^.reg)=R_SUBFD)) and MatchInstruction(movp, A_VMOV, [taicpu(p).condition], [PF_F64])) or
+          (((taicpu(p).oppostfix in [PF_F32F64,PF_F32S16,PF_F32S32,PF_F32U16,PF_F32U32]) or (getsubreg(taicpu(p).oper[0]^.reg)=R_SUBFS)) and MatchInstruction(movp, A_VMOV, [taicpu(p).condition], [PF_F32]))
          ) and
          (taicpu(movp).ops=2) and
          MatchOperand(taicpu(movp).oper[1]^, taicpu(p).oper[0]^.reg) and
@@ -519,6 +521,17 @@ Implementation
                   IncludeRegInUsedRegs(taicpu(movp).oper[0]^.reg,UsedRegs);
                 end;
 
+              { change
+                  vldr reg0,[reg1]
+                  vmov reg2,reg0
+                into
+                  ldr reg2,[reg1]
+
+                if reg2 is an int register
+              }
+              if (taicpu(p).opcode=A_VLDR) and (getregtype(taicpu(movp).oper[0]^.reg)=R_INTREGISTER) then
+                taicpu(p).opcode:=A_LDR;
+
               { finally get rid of the mov }
               taicpu(p).loadreg(0,taicpu(movp).oper[0]^.reg);
               asml.remove(movp);
@@ -2245,6 +2258,31 @@ Implementation
                         DebugMsg('Peephole Bl2B done', p);
                       end;
                   end;
+                A_VMOV:
+                  begin
+                    {
+                      change
+                      vmov reg0,reg1,reg2
+                      vmov reg1,reg2,reg0
+                      into
+                      vmov reg0,reg1,reg2
+
+                      can be applied regardless if reg0 or reg2 is the vfp register
+                    }
+                    if (taicpu(p).ops = 3) and
+                      GetNextInstruction(p, hp1) and
+                      MatchInstruction(hp1, A_VMOV, [taicpu(p).condition], [taicpu(p).oppostfix]) and
+                      (taicpu(hp1).ops = 3) and
+                      MatchOperand(taicpu(p).oper[0]^, taicpu(hp1).oper[2]^) and
+                      MatchOperand(taicpu(p).oper[1]^, taicpu(hp1).oper[0]^) and
+                      MatchOperand(taicpu(p).oper[2]^, taicpu(hp1).oper[1]^) then
+                      begin
+                        asml.Remove(hp1);
+                        hp1.free;
+                        DebugMsg('Peephole VMovVMov2VMov done', p);
+                      end;
+                  end;
+                A_VLDR,
                 A_VADD,
                 A_VMUL,
                 A_VDIV,
@@ -2313,7 +2351,9 @@ Implementation
                            (l<=4) and
                            CanBeCond(hp1) and
                            { stop on labels }
-                           not(hp1.typ=ait_label) do
+                           not(hp1.typ=ait_label) and
+                           { avoid that we cannot recognize the case BccB2Cond }
+                           not((hp1.typ=ait_instruction) and (taicpu(hp1).opcode=A_B)) do
                            begin
                               inc(l);
                               if MustBeLast(hp1) then
@@ -2348,6 +2388,7 @@ Implementation
                                       until not(assigned(hp1)) or
                                         not(CanBeCond(hp1)) or
                                         (hp1.typ=ait_label);
+                                      DebugMsg('Peephole Bcc2Cond done',hp2);
                                       { wait with removing else GetNextInstruction could
                                         ignore the label if it was the only usage in the
                                         jump moved away }
@@ -2383,17 +2424,24 @@ Implementation
                                     (taicpu(hp2).condition=C_None) and
                                     { real label and jump, no further references to the
                                       label are allowed }
-                                    (tasmlabel(taicpu(p).oper[0]^.ref^.symbol).getrefs=2) and
+                                    (tasmlabel(taicpu(p).oper[0]^.ref^.symbol).getrefs=1) and
                                     FindLabel(tasmlabel(taicpu(p).oper[0]^.ref^.symbol),hp1) then
                                      begin
                                        l:=0;
                                        { skip hp1 to <several moves 2> }
                                        GetNextInstruction(hp1, hp1);
                                        while assigned(hp1) and
-                                         CanBeCond(hp1) do
+                                         CanBeCond(hp1) and
+                                         (l<=3) do
                                          begin
                                            inc(l);
-                                           GetNextInstruction(hp1, hp1);
+                                           if MustBeLast(hp1) then
+                                             begin
+                                               GetNextInstruction(hp1, hp1);
+                                               break;
+                                             end
+                                           else
+                                             GetNextInstruction(hp1, hp1);
                                          end;
                                        { hp1 points to yyy: }
                                        if assigned(hp1) and
@@ -2406,32 +2454,35 @@ Implementation
                                             repeat
                                               if hp1.typ=ait_instruction then
                                                 taicpu(hp1).condition:=condition;
-                                              GetNextInstruction(hp1,hp1);
+                                              if MustBeLast(hp1) then
+                                                begin
+                                                  GetNextInstruction(hp1, hp1);
+                                                  break;
+                                                end
+                                              else
+                                                GetNextInstruction(hp1, hp1);
                                             until not(assigned(hp1)) or
-                                              not(CanBeCond(hp1));
+                                              not(CanBeCond(hp1)) or
+                                              ((hp1.typ=ait_instruction) and (taicpu(hp1).opcode=A_B));
                                             { hp2 is still at jmp yyy }
                                             GetNextInstruction(hp2,hp1);
-                                            { hp2 is now at xxx: }
+                                            { hp1 is now at xxx: }
                                             condition:=inverse_cond(condition);
                                             GetNextInstruction(hp1,hp1);
                                             { hp1 is now at <several movs 2> }
                                             repeat
-                                              taicpu(hp1).condition:=condition;
+                                              if hp1.typ=ait_instruction then
+                                                taicpu(hp1).condition:=condition;
                                               GetNextInstruction(hp1,hp1);
                                             until not(assigned(hp1)) or
                                               not(CanBeCond(hp1)) or
                                               (hp1.typ=ait_label);
-                                            {
-                                            asml.remove(hp1.next)
-                                            hp1.next.free;
-                                            asml.remove(hp1);
-                                            hp1.free;
-                                            }
+                                            DebugMsg('Peephole BccB2Cond done',hp3);
                                             { remove Bcc }
                                             tasmlabel(taicpu(hp3).oper[0]^.ref^.symbol).decrefs;
                                             asml.remove(hp3);
                                             hp3.free;
-                                            { remove jmp }
+                                            { remove B }
                                             tasmlabel(taicpu(hp2).oper[0]^.ref^.symbol).decrefs;
                                             asml.remove(hp2);
                                             hp2.free;

+ 1 - 0
compiler/arm/armatt.inc

@@ -324,6 +324,7 @@
 'svc',
 'bxj',
 'udf',
+'veor',
 'tan',
 'sqt',
 'suf',

+ 1 - 0
compiler/arm/armatts.inc

@@ -353,5 +353,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
 attsufNONE
 );

+ 5 - 0
compiler/arm/armins.dat

@@ -1731,6 +1731,11 @@ reg32              \x3\x01\x2F\xFF\x20             ARM32,ARMv5TEJ
 immshifter           \x61\xDE\x0                   THUMB,ARMv4T
 void                 void                          ARM32,ARMv4T
 
+; NEON/Advanced SIMD
+
+[VEOR]
+vreg,vreg,vreg              \x42\xF3\x00\x01\x10   ARM32,NEON
+
 ; FPA
 
 

+ 1 - 1
compiler/arm/armnop.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from armins.dat }
-961;
+962;

+ 1 - 0
compiler/arm/armop.inc

@@ -324,6 +324,7 @@ A_NEG,
 A_SVC,
 A_BXJ,
 A_UDF,
+A_VEOR,
 A_TAN,
 A_SQT,
 A_SUF,

+ 7 - 0
compiler/arm/armtab.inc

@@ -6342,6 +6342,13 @@
     code    : #0;
     flags   : if_arm32 or if_armv4t
   ),
+  (
+    opcode  : A_VEOR;
+    ops     : 3;
+    optypes : (ot_vreg,ot_vreg,ot_vreg,ot_none,ot_none,ot_none);
+    code    : #66#243#0#1#16;
+    flags   : if_arm32 or if_neon
+  ),
   (
     opcode  : A_TAN;
     ops     : 2;

+ 88 - 41
compiler/arm/cgcpu.pas

@@ -61,6 +61,8 @@ unit cgcpu;
         procedure a_loadfpu_ref_reg(list: TAsmList; fromsize, tosize: tcgsize; const ref: treference; reg: tregister); override;
         procedure a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference); override;
 
+        procedure g_check_for_fpu_exception(list : TAsmList; force,clear : boolean); override;
+
         procedure a_loadfpu_ref_cgpara(list : TAsmList;size : tcgsize;const ref : treference;const paraloc : TCGPara);override;
         {  comparison operations }
         procedure a_cmp_const_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;a : tcgint;reg : tregister;
@@ -298,7 +300,7 @@ unit cgcpu;
           non-overlapping subregs per register, so we can only use
           half the single precision registers for now (as sub registers of the
           double precision ones). }
-        if current_settings.fputype in [fpu_vfpv3,fpu_vfpv4] then
+        if FPUARM_HAS_32REGS in fpu_capabilities[current_settings.fputype] then
           rg[R_MMREGISTER]:=trgcpu.create(R_MMREGISTER,R_SUBFD,
               [RS_D0,RS_D1,RS_D2,RS_D3,RS_D4,RS_D5,RS_D6,RS_D7,
                RS_D16,RS_D17,RS_D18,RS_D19,RS_D20,RS_D21,RS_D22,RS_D23,RS_D24,RS_D25,RS_D26,RS_D27,RS_D28,RS_D29,RS_D30,RS_D31,
@@ -1720,6 +1722,34 @@ unit cgcpu;
        end;
 
 
+    procedure tbasecgarm.g_check_for_fpu_exception(list: TAsmList;force,clear : boolean);
+      var
+        r : TRegister;
+        ai: taicpu;
+        l: TAsmLabel;
+      begin
+        if ((cs_check_fpu_exceptions in current_settings.localswitches) and
+            not(FPUARM_HAS_EXCEPTION_TRAPPING in fpu_capabilities[current_settings.fputype]) and
+            (force or current_procinfo.FPUExceptionCheckNeeded)) then
+          begin
+            r:=getintregister(list,OS_INT);
+            list.concat(taicpu.op_reg_reg(A_FMRX,r,NR_FPSCR));
+            list.concat(setoppostfix(taicpu.op_reg_reg_const(A_AND,r,r,$9f),PF_S));
+            current_asmdata.getjumplabel(l);
+            ai:=taicpu.op_sym(A_B,l);
+            ai.is_jmp:=true;
+            ai.condition:=C_EQ;
+            list.concat(ai);
+            alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+            cg.a_call_name(list,'FPC_THROWFPUEXCEPTION',false);
+            dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+            a_label(list,l);
+            if clear then
+              current_procinfo.FPUExceptionCheckNeeded:=false;
+          end;
+      end;
+
+
     {  comparison operations }
     procedure tbasecgarm.a_cmp_const_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;a : tcgint;reg : tregister;
       l : tasmlabel);
@@ -1896,16 +1926,20 @@ unit cgcpu;
                         inc(registerarea,12);
                       end;
                 end;
-              fpu_vfpv2,
-              fpu_vfpv3,
-              fpu_vfpv4,
-              fpu_vfpv3_d16:
+              else if FPUARM_HAS_32REGS in fpu_capabilities[current_settings.fputype] then
                 begin;
                   { the *[0..31] is a hack to prevent that the compiler tries to save odd single-type registers,
                     they have numbers>$1f which is not really correct as they should simply have the same numbers
                     as the even ones by with a different subtype as it is done on x86 with al/ah }
                   mmregs:=(rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall))*[0..31];
-                end;
+                end
+              else if FPUARM_HAS_VFP_EXTENSION in fpu_capabilities[current_settings.fputype] then
+                begin;
+                  { the *[0..15] is a hack to prevent that the compiler tries to save odd single-type registers,
+                    they have numbers>$1f which is not really correct as they should simply have the same numbers
+                    as the even ones by with a different subtype as it is done on x86 with al/ah }
+                  mmregs:=(rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall))*[0..15];
+                end
               else
                 internalerror(2019050924);
             end;
@@ -2050,7 +2084,7 @@ unit cgcpu;
              begin
                reference_reset(ref,4,[]);
                if (tg.direction*tcpuprocinfo(current_procinfo).floatregstart>=1023) or
-                  (current_settings.fputype in [fpu_vfpv2,fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16]) then
+                 (FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype]) then
                  begin
                    if not is_shifter_const(tcpuprocinfo(current_procinfo).floatregstart,shift) then
                      begin
@@ -2077,10 +2111,7 @@ unit cgcpu;
                      list.concat(taicpu.op_reg_const_ref(A_SFM,newreg(R_FPUREGISTER,firstfloatreg,R_SUBWHOLE),
                        lastfloatreg-firstfloatreg+1,ref));
                    end;
-                 fpu_vfpv2,
-                 fpu_vfpv3,
-                 fpu_vfpv4,
-                 fpu_vfpv3_d16:
+                 else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
                    begin
                      ref.index:=ref.base;
                      ref.base:=NR_NO;
@@ -2091,7 +2122,7 @@ unit cgcpu;
                        postfix:=PF_IAD;}
                      if mmregs<>[] then
                        list.concat(taicpu.op_ref_regset(A_VSTM,ref,R_MMREGISTER,R_SUBFD,mmregs));
-                   end;
+                   end
                  else
                    internalerror(2019050923);
                end;
@@ -2145,17 +2176,14 @@ unit cgcpu;
                         }
                       end;
                 end;
-              fpu_vfpv2,
-              fpu_vfpv3,
-              fpu_vfpv4,
-              fpu_vfpv3_d16:
-                begin;
+              else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
+                begin
                   { restore vfp registers? }
                   { the *[0..31] is a hack to prevent that the compiler tries to save odd single-type registers,
                     they have numbers>$1f which is not really correct as they should simply have the same numbers
                     as the even ones by with a different subtype as it is done on x86 with al/ah }
                   mmregs:=(rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall))*[0..31];
-                end;
+                end
               else
                 internalerror(2019050926);
             end;
@@ -2165,7 +2193,7 @@ unit cgcpu;
               begin
                 reference_reset(ref,4,[]);
                 if (tg.direction*tcpuprocinfo(current_procinfo).floatregstart>=1023) or
-                   (current_settings.fputype in [fpu_vfpv2,fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16]) then
+                   (FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype]) then
                   begin
                     if not is_shifter_const(tcpuprocinfo(current_procinfo).floatregstart,shift) then
                       begin
@@ -2191,10 +2219,7 @@ unit cgcpu;
                       list.concat(taicpu.op_reg_const_ref(A_LFM,newreg(R_FPUREGISTER,firstfloatreg,R_SUBWHOLE),
                         lastfloatreg-firstfloatreg+1,ref));
                     end;
-                  fpu_vfpv2,
-                  fpu_vfpv3,
-                  fpu_vfpv4,
-                  fpu_vfpv3_d16:
+                  else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
                     begin
                       ref.index:=ref.base;
                       ref.base:=NR_NO;
@@ -2205,7 +2230,7 @@ unit cgcpu;
                         mmpostfix:=PF_IAD;}
                      if mmregs<>[] then
                        list.concat(taicpu.op_ref_regset(A_VLDM,ref,R_MMREGISTER,R_SUBFD,mmregs));
-                    end;
+                    end
                   else
                     internalerror(2019050921);
                 end;
@@ -3069,6 +3094,7 @@ unit cgcpu;
           else
             ;
         end;
+        maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -3134,6 +3160,7 @@ unit cgcpu;
 
         if (tmpmmreg<>reg) then
           a_loadmm_reg_reg(list,fromsize,tosize,tmpmmreg,reg,shuffle);
+        maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -3199,6 +3226,7 @@ unit cgcpu;
           begin
              handle_load_store(list,A_VSTR,PF_None,tmpmmreg,ref);
           end;
+        maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -3214,6 +3242,7 @@ unit cgcpu;
            not shufflescalar(shuffle) then
           internalerror(2009112516);
         list.concat(taicpu.op_reg_reg(A_VMOV,mmreg,intreg));
+        maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -3229,6 +3258,7 @@ unit cgcpu;
            not shufflescalar(shuffle) then
           internalerror(2009112514);
         list.concat(taicpu.op_reg_reg(A_VMOV,intreg,mmreg));
+        maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -3242,20 +3272,30 @@ unit cgcpu;
           case op of
             OP_XOR:
               begin
-                if (src<>dst) or
-                   (reg_cgsize(src)<>size) or
-                   assigned(shuffle) then
-                  internalerror(2009112907);
-                tmpreg:=getintregister(list,OS_32);
-                a_load_const_reg(list,OS_32,0,tmpreg);
-                case size of
-                  OS_F32:
-                    list.concat(taicpu.op_reg_reg(A_VMOV,dst,tmpreg));
-                  OS_F64:
-                    list.concat(taicpu.op_reg_reg_reg(A_VMOV,dst,tmpreg,tmpreg));
-                  else
-                    internalerror(2009112908);
-                end;
+                if (FPUARM_HAS_NEON in fpu_capabilities[current_settings.fputype]) and (size in [OS_F64]) then
+                  begin
+                    if (reg_cgsize(src)<>size) or
+                       assigned(shuffle) then
+                      internalerror(2019081301);
+                    list.concat(taicpu.op_reg_reg_reg(A_VEOR,dst,dst,src));
+                  end
+                else
+                  begin
+                    if (src<>dst) or
+                       (reg_cgsize(src)<>size) or
+                       assigned(shuffle) then
+                      internalerror(2009112907);
+                    tmpreg:=getintregister(list,OS_32);
+                    a_load_const_reg(list,OS_32,0,tmpreg);
+                    case size of
+                      OS_F32:
+                        list.concat(taicpu.op_reg_reg(A_VMOV,dst,tmpreg));
+                      OS_F64:
+                        list.concat(taicpu.op_reg_reg_reg(A_VMOV,dst,tmpreg,tmpreg));
+                      else
+                        internalerror(2009112908);
+                    end;
+                  end;
               end
             else
               internalerror(2009112906);
@@ -3356,6 +3396,7 @@ unit cgcpu;
         if (mmsize<>OS_F64) then
           internalerror(2009112405);
         list.concat(taicpu.op_reg_reg_reg(A_VMOV,mmreg,intreg.reglo,intreg.reghi));
+        cg.maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -3366,6 +3407,7 @@ unit cgcpu;
         if (mmsize<>OS_F64) then
           internalerror(2009112406);
         list.concat(taicpu.op_reg_reg_reg(A_VMOV,intreg.reglo,intreg.reghi,mmreg));
+        cg.maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -4276,13 +4318,13 @@ unit cgcpu;
         rg[R_FPUREGISTER]:=trgcpu.create(R_FPUREGISTER,R_SUBNONE,
             [RS_F0,RS_F1,RS_F2,RS_F3,RS_F4,RS_F5,RS_F6,RS_F7],first_fpu_imreg,[]);
 
-        if current_settings.fputype in [fpu_vfpv3,fpu_vfpv4] then
+        if FPUARM_HAS_32REGS in fpu_capabilities[current_settings.fputype] then
           rg[R_MMREGISTER]:=trgcpu.create(R_MMREGISTER,R_SUBFD,
               [RS_D0,RS_D1,RS_D2,RS_D3,RS_D4,RS_D5,RS_D6,RS_D7,
                RS_D16,RS_D17,RS_D18,RS_D19,RS_D20,RS_D21,RS_D22,RS_D23,RS_D24,RS_D25,RS_D26,RS_D27,RS_D28,RS_D29,RS_D30,RS_D31,
                RS_D8,RS_D9,RS_D10,RS_D11,RS_D12,RS_D13,RS_D14,RS_D15
               ],first_mm_imreg,[])
-        else if current_settings.fputype in [fpu_fpv4_s16,fpu_vfpv3_d16] then
+        else if FPUARM_HAS_VFP_EXTENSION in fpu_capabilities[current_settings.fputype] then
           rg[R_MMREGISTER]:=trgcpu.create(R_MMREGISTER,R_SUBFD,
               [RS_D0,RS_D1,RS_D2,RS_D3,RS_D4,RS_D5,RS_D6,RS_D7,
                RS_D8,RS_D9,RS_D10,RS_D11,RS_D12,RS_D13,RS_D14,RS_D15
@@ -5196,6 +5238,7 @@ unit cgcpu;
             instr:=setoppostfix(taicpu.op_reg_reg(A_VMOV,reg2,reg1), PF_F32);
             list.Concat(instr);
             add_move_instruction(instr);
+            maybe_check_for_fpu_exception(list);
           end
         else if (fromsize=OS_F64) and
           (tosize=OS_F64) then
@@ -5221,6 +5264,7 @@ unit cgcpu;
     procedure tthumb2cgarm.a_loadmm_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference; shuffle: pmmshuffle);
       begin
         handle_load_store(list,A_VSTR,PF_None,reg,ref);
+        maybe_check_for_fpu_exception(list);
       end;
 
 
@@ -5238,7 +5282,10 @@ unit cgcpu;
       begin
         if //(shuffle=nil) and
           (fromsize=OS_F32) then
-          list.Concat(taicpu.op_reg_reg(A_VMOV,intreg,mmreg))
+          begin
+            list.Concat(taicpu.op_reg_reg(A_VMOV,intreg,mmreg));
+            maybe_check_for_fpu_exception(list);
+          end
         else
           internalerror(2012100814);
       end;

+ 2 - 2
compiler/arm/cpubase.pas

@@ -777,8 +777,8 @@ unit cpubase;
               doublerec:=tcompdoublerec(NtoLE(QWord(doublerec)));
               Result:=(doublerec.bytes[0]=0) and (doublerec.bytes[1]=0) and (doublerec.bytes[2]=0) and
                       (doublerec.bytes[3]=0) and (doublerec.bytes[4]=0) and (doublerec.bytes[5]=0) and
-                      ((((doublerec.bytes[6] and $7f)=$40) and ((doublerec.bytes[7] and $c0)=0)) or
-                       (((doublerec.bytes[6] and $7f)=$3f) and ((doublerec.bytes[7] and $c0)=$c0)));
+                      ((((doublerec.bytes[6] and $c0)=$0) and ((doublerec.bytes[7] and $7f)=$40)) or
+                       (((doublerec.bytes[6] and $c0)=$c0) and ((doublerec.bytes[7] and $7f)=$3f)));
             end;
           else
             ;

+ 46 - 7
compiler/arm/cpuinfo.pas

@@ -14,6 +14,8 @@
 
 Unit CPUInfo;
 
+{$i fpcdefs.inc}
+
 Interface
 
   uses
@@ -66,13 +68,19 @@ Type
       fpu_fpa11,
       fpu_vfpv2,
       fpu_vfpv3,
+      fpu_neon_vfpv3,
       fpu_vfpv3_d16,
       fpu_fpv4_s16,
-      fpu_vfpv4
+      fpu_vfpv4,
+      fpu_neon_vfpv4
+      { when new elements added afterwards, update also fpu_vfp_last below }
      );
 
 Const
-  fputypestrllvm : array[tfputype] of string[13] = ('',
+   fpu_vfp_first = fpu_vfpv2;
+   fpu_vfp_last  = fpu_neon_vfpv4;
+
+  fputypestrllvm : array[tfputype] of string[14] = ('',
     '',
     '',
     '',
@@ -80,9 +88,11 @@ Const
     '',
     'fpu=vfpv2',
     'fpu=vfpv3',
+    'fpu=neon-vfpv3',
     'fpu=vfpv3-d16',
     'fpu=vfpv4-s16',
-    'fpu=vfpv4'
+    'fpu=vfpv4',
+    'fpu=neon-vfpv4'
   );
 
 Type
@@ -553,7 +563,7 @@ Const
      'ARMV7EM'
    );
 
-   fputypestr : array[tfputype] of string[9] = ('',
+   fputypestr : array[tfputype] of string[10] = ('',
      'SOFT',
      'LIBGCC',
      'FPA',
@@ -561,9 +571,11 @@ Const
      'FPA11',
      'VFPV2',
      'VFPV3',
+     'NEON_VFPV3',
      'VFPV3_D16',
      'FPV4_S16',
-     'VFPV4'
+     'VFPV4',
+     'NEON_VFPV4'
    );
 
 
@@ -1012,8 +1024,6 @@ Const
       (controllertypestr:'THUMB2_BARE';	controllerunitstr:'THUMB2_BARE';	cputype:cpu_armv7m; fputype:fpu_soft; flashbase:$00000000;	flashsize:$00002000;	srambase:$20000000;	sramsize:$00000400)
     );
 
-   vfp_scalar = [fpu_vfpv2,fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16,fpu_fpv4_s16];
-
    { Supported optimizations, only used for information }
    supported_optimizerswitches = genericlevel1optimizerswitches+
                                  genericlevel2optimizerswitches+
@@ -1047,6 +1057,19 @@ Const
        CPUARM_HAS_UMULL
       );
 
+   tfpuflags =
+      (
+        FPUARM_HAS_FPA,                { fpu is an fpa based FPU                                                               }
+        FPUARM_HAS_VFP_EXTENSION,      { fpu is a vfp extension                                                                }
+        FPUARM_HAS_VFP_DOUBLE,         { vfp has double support                                                                }
+        FPUARM_HAS_VFP_SINGLE_ONLY,    { vfp has only single support, disjunct to FPUARM_HAS_VFP_DOUBLE, for error checking    }
+        FPUARM_HAS_32REGS,             { vfp has 32 regs, without this flag, 16 are assumed                                    }
+        FPUARM_HAS_VMOV_CONST,         { vmov supports (some) real constants                                                   }
+        FPUARM_HAS_EXCEPTION_TRAPPING, { vfp does exceptions trapping                                                          }
+        FPUARM_HAS_NEON,               { fpu has neon extensions                                                               }
+        FPUARM_HAS_FMA                 { fpu has fused multiply/add instructions                                               }
+      );
+
  const
    cpu_capabilities : array[tcputype] of set of tcpuflags =
      ( { cpu_none     } [],
@@ -1070,6 +1093,22 @@ Const
        { cpu_armv7em  } [CPUARM_HAS_ALL_MEM,CPUARM_HAS_BX,CPUARM_HAS_BLX,CPUARM_HAS_CLZ,CPUARM_HAS_EDSP,CPUARM_HAS_REV,CPUARM_HAS_RBIT,CPUARM_HAS_LDREX,CPUARM_HAS_THUMB_IDIV,CPUARM_HAS_DMB,CPUARM_HAS_THUMB2,CPUARM_HAS_UMULL]
      );
 
+     fpu_capabilities : array[tfputype] of set of tfpuflags =
+       ( { fpu_none       } [],
+         { fpu_soft       } [],
+         { fpu_libgcc     } [],
+         { fpu_fpa        } [FPUARM_HAS_FPA],
+         { fpu_fpa10      } [FPUARM_HAS_FPA],
+         { fpu_fpa11      } [FPUARM_HAS_FPA],
+         { fpu_vfpv2      } [FPUARM_HAS_VFP_EXTENSION,FPUARM_HAS_VFP_DOUBLE],
+         { fpu_vfpv3      } [FPUARM_HAS_VFP_EXTENSION,FPUARM_HAS_VFP_DOUBLE,FPUARM_HAS_32REGS,FPUARM_HAS_VMOV_CONST],
+         { fpu_neon_vfpv3 } [FPUARM_HAS_VFP_EXTENSION,FPUARM_HAS_VFP_DOUBLE,FPUARM_HAS_32REGS,FPUARM_HAS_VMOV_CONST,FPUARM_HAS_NEON],
+         { fpu_vfpv3_d16  } [FPUARM_HAS_VFP_EXTENSION,FPUARM_HAS_VFP_DOUBLE,FPUARM_HAS_VMOV_CONST],
+         { fpu_fpv4_s16   } [FPUARM_HAS_VFP_EXTENSION,FPUARM_HAS_VFP_SINGLE_ONLY,FPUARM_HAS_VMOV_CONST],
+         { fpu_vfpv4      } [FPUARM_HAS_VFP_EXTENSION,FPUARM_HAS_VFP_DOUBLE,FPUARM_HAS_32REGS,FPUARM_HAS_VMOV_CONST,FPUARM_HAS_FMA],
+         { fpu_neon_vfpv4 } [FPUARM_HAS_VFP_EXTENSION,FPUARM_HAS_VFP_DOUBLE,FPUARM_HAS_32REGS,FPUARM_HAS_VMOV_CONST,FPUARM_HAS_NEON,FPUARM_HAS_FMA]
+       );
+
    { contains all CPU supporting any kind of thumb instruction set }
    cpu_has_thumb = [cpu_armv4t,cpu_armv5t,cpu_armv5te,cpu_armv5tej,cpu_armv6t2,cpu_armv6z,cpu_armv6m,cpu_armv7a,cpu_armv7r,cpu_armv7m,cpu_armv7em];
 

+ 32 - 7
compiler/arm/cpupara.pas

@@ -149,7 +149,7 @@ unit cpupara;
                 getparaloc:=LOC_MMREGISTER
               else if (calloption in cdecl_pocalls) or
                  (cs_fp_emulation in current_settings.moduleswitches) or
-                 (current_settings.fputype in [fpu_vfpv2,fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16,fpu_fpv4_s16]) then
+                 (current_settings.fputype in [fpu_vfp_first..fpu_vfp_last]) then
                 { the ARM eabi also allows passing VFP values via VFP registers,
                   but Mac OS X doesn't seem to do that and linux only does it if
                   built with the "-mfloat-abi=hard" option }
@@ -711,7 +711,8 @@ unit cpupara;
         retcgsize  : tcgsize;
         basedef: tdef;
         i: longint;
-        mmreg: tregister;
+        sparesinglereg: tregister;
+        mmreg : TSuperRegister;
       begin
          if set_common_funcretloc_info(p,forcetempdef,retcgsize,result) then
            exit;
@@ -719,6 +720,7 @@ unit cpupara;
         paraloc:=result.add_location;
         { Return in FPU register? }
         basedef:=nil;
+        sparesinglereg:=NR_NO;
         if (result.def.typ=floatdef) or
            is_hfa(result.def,basedef) then
           begin
@@ -736,20 +738,43 @@ unit cpupara;
                   OS_64,
                   OS_F64:
                     begin
-                      mmreg:=NR_MM_RESULT_REG
+                      mmreg:=RS_D0;
                     end;
                   OS_32,
                   OS_F32:
                     begin
-                      mmreg:=NR_S0;
+                      mmreg:=RS_S0;
                     end;
                   else
                     internalerror(2012032501);
                 end;
                 repeat
                   paraloc^.loc:=LOC_MMREGISTER;
-                  paraloc^.register:=mmreg;
-                  inc(mmreg);
+                  { mm registers are strangly ordered in the arm compiler }
+                  case retcgsize of
+                    OS_32,OS_F32:
+                      begin
+                        if sparesinglereg=NR_NO then
+                          begin
+                            paraloc^.register:=newreg(R_MMREGISTER,mmreg,R_SUBFS);
+                            sparesinglereg:=newreg(R_MMREGISTER,mmreg-RS_S0+RS_S1,R_SUBFS);
+                            inc(mmreg);
+                          end
+                        else
+                          begin
+                            paraloc^.register:=sparesinglereg;
+                            sparesinglereg:=NR_NO;
+                          end;
+                      end;
+                    OS_64,OS_F64:
+                      begin
+                        paraloc^.register:=newreg(R_MMREGISTER,mmreg,R_SUBFD);
+                        inc(mmreg);
+                      end;
+                    else
+                      Internalerror(2019081201);
+                  end;
+
                   paraloc^.size:=retcgsize;
                   paraloc^.def:=basedef;
                   paraloc:=paraloc^.next;
@@ -757,7 +782,7 @@ unit cpupara;
               end
             else if (p.proccalloption in [pocall_softfloat]) or
                (cs_fp_emulation in current_settings.moduleswitches) or
-               (current_settings.fputype in [fpu_vfpv2,fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16,fpu_fpv4_s16]) then
+               (current_settings.fputype in [fpu_vfp_first..fpu_vfp_last]) then
               begin
                 case retcgsize of
                   OS_64,

+ 3 - 6
compiler/arm/cpupi.pas

@@ -178,18 +178,15 @@ unit cpupi;
                   if firstfloatreg<>RS_NO then
                     floatsavesize:=(lastfloatreg-firstfloatreg+1)*12;
                 end;
-              fpu_vfpv2,
-              fpu_vfpv3,
-              fpu_vfpv4,
-              fpu_vfpv3_d16:
+              else if FPUARM_HAS_32REGS in fpu_capabilities[current_settings.fputype] then
                 begin
                   floatsavesize:=0;
                   regs:=cg.rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall);
                   for r:=RS_D0 to RS_D31 do
                     if r in regs then
                       inc(floatsavesize,8);
-                end;
-              fpu_fpv4_s16:
+                end
+              else
                 begin
                   floatsavesize:=0;
                   regs:=cg.rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall);

+ 1 - 1
compiler/arm/hlcgcpu.pas

@@ -177,7 +177,7 @@ implementation
       if make_global then
         list.concat(Tai_symbol.Createname_global(labelname,AT_FUNCTION,0,procdef))
       else
-        list.concat(Tai_symbol.Createname(labelname,AT_FUNCTION,0,procdef));
+        list.concat(Tai_symbol.Createname_hidden(labelname,AT_FUNCTION,0,procdef));
 
       { the wrapper might need aktlocaldata for the additional data to
         load the constant }

+ 18 - 20
compiler/arm/narmadd.pas

@@ -161,7 +161,7 @@ interface
 
     function tarmaddnode.use_fma : boolean;
       begin
-       Result:=current_settings.fputype in [fpu_vfpv4];
+       Result:=FPUARM_HAS_FMA in fpu_capabilities[current_settings.fputype];
       end;
 
 
@@ -205,10 +205,10 @@ interface
                  location.register,left.location.register,right.location.register),
                  cgsize2fpuoppostfix[def_cgsize(resultdef)]));
             end;
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16:
+          fpu_soft:
+            { this case should be handled already by pass1 }
+            internalerror(200308252);
+          else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
             begin
               { force mmreg as location, left right doesn't matter
                 as both will be in a fpureg }
@@ -238,8 +238,9 @@ interface
 
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(op,
                  location.register,left.location.register,right.location.register),pf));
-            end;
-          fpu_fpv4_s16:
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
+          else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
             begin
               { force mmreg as location, left right doesn't matter
                 as both will be in a fpureg }
@@ -263,10 +264,8 @@ interface
               end;
 
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(op, location.register,left.location.register,right.location.register), PF_F32));
-            end;
-          fpu_soft:
-            { this case should be handled already by pass1 }
-            internalerror(200308252);
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
           else
             internalerror(200308251);
         end;
@@ -305,10 +304,7 @@ interface
                    left.location.register,right.location.register),
                    cgsize2fpuoppostfix[def_cgsize(resultdef)]));
             end;
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16:
+          else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
             begin
               hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
               hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,right.location,right.resultdef,true);
@@ -325,11 +321,12 @@ interface
 
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(op,
                 left.location.register,right.location.register), pf));
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
               cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
               current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_VMRS,NR_APSR_nzcv,NR_FPSCR));
               location.resflags:=GetFpuResFlags;
-            end;
-          fpu_fpv4_s16:
+            end
+          else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
             begin
               hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
               hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,right.location,right.resultdef,true);
@@ -341,9 +338,10 @@ interface
 
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(op,
                 left.location.register,right.location.register),PF_F32));
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
               cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
               current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_VMRS, NR_APSR_nzcv, NR_FPSCR));
-            end;
+            end
           else
             { this case should be handled already by pass1 }
             internalerror(2009112404);
@@ -588,7 +586,7 @@ interface
         result := nil;
         notnode := false;
 
-        if current_settings.fputype = fpu_fpv4_s16 then
+        if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
           begin
             case tfloatdef(left.resultdef).floattype of
               s32real:
@@ -724,7 +722,7 @@ interface
       begin
         result:=GenerateThumbCode or
           not(CPUARM_HAS_UMULL in cpu_capabilities[current_settings.cputype]) or
-          (cs_check_overflow in current_settings.localswitches);
+          needoverflowcheck;
       end;
 
 begin

+ 1 - 1
compiler/arm/narmcal.pas

@@ -83,7 +83,7 @@ implementation
          (target_info.abi<>abi_eabihf) and
          (procdefinition.proccalloption<>pocall_hardfloat) and
          ((cs_fp_emulation in current_settings.moduleswitches) or
-          (current_settings.fputype in [fpu_vfpv2,fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16,fpu_fpv4_s16])) then
+          (current_settings.fputype in [fpu_vfp_first..fpu_vfp_last])) then
         begin
           { keep the fpu values in integer registers for now, the code
             generator will move them to memory or an mmregister when necessary

+ 7 - 14
compiler/arm/narmcnv.pas

@@ -78,7 +78,7 @@ implementation
 {$ifdef cpufpemu}
           (current_settings.fputype=fpu_soft) or
 {$endif cpufpemu}
-          (current_settings.fputype=fpu_fpv4_s16) then
+          (FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype]) then
           result:=inherited first_int_to_real
         else
           begin
@@ -117,11 +117,7 @@ implementation
               fpu_fpa10,
               fpu_fpa11:
                 expectloc:=LOC_FPUREGISTER;
-              fpu_vfpv2,
-              fpu_vfpv3,
-              fpu_vfpv4,
-              fpu_vfpv3_d16,
-              fpu_fpv4_s16:
+              fpu_vfp_first..fpu_vfp_last:
                 expectloc:=LOC_MMREGISTER;
               else
                 internalerror(2009112702);
@@ -131,7 +127,7 @@ implementation
 
     function tarmtypeconvnode.first_real_to_real: tnode;
       begin
-        if (current_settings.fputype=fpu_fpv4_s16) then
+        if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
           begin
             case tfloatdef(left.resultdef).floattype of
               s32real:
@@ -244,10 +240,7 @@ implementation
                   end;
               end;
             end;
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16:
+          else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
             begin
               location_reset(location,LOC_MMREGISTER,def_cgsize(resultdef));
               signed:=left.location.size=OS_S32;
@@ -261,8 +254,8 @@ implementation
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VCVT,
                 location.register,left.location.register),
                 signedprec2vfppf[signed,location.size]));
-            end;
-          fpu_fpv4_s16:
+            end
+          else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
             begin
               location_reset(location,LOC_MMREGISTER,def_cgsize(resultdef));
               signed:=left.location.size=OS_S32;
@@ -277,7 +270,7 @@ implementation
                 current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VCVT,location.register,left.location.register), PF_F32S32))
               else
                 current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VCVT,location.register,left.location.register), PF_F32U32));
-            end;
+            end
           else
             { should be handled in pass 1 }
             internalerror(2019050934);

+ 2 - 2
compiler/arm/narmcon.pas

@@ -54,7 +54,7 @@ interface
     function tarmrealconstnode.pass_1 : tnode;
       begin
         result:=nil;
-        if (current_settings.fputype in [fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16,fpu_fpv4_s16]) and
+        if (FPUARM_HAS_VMOV_CONST in fpu_capabilities[current_settings.fputype]) and
            IsVFPFloatImmediate(tfloatdef(resultdef).floattype,value_real) then
            expectloc:=LOC_MMREGISTER
          else
@@ -75,7 +75,7 @@ interface
          pf : TOpPostfix;
 
       begin
-        if (current_settings.fputype in [fpu_vfpv3,fpu_vfpv4,fpu_vfpv3_d16,fpu_fpv4_s16]) and
+        if (FPUARM_HAS_VMOV_CONST in fpu_capabilities[current_settings.fputype]) and
           IsVFPFloatImmediate(tfloatdef(resultdef).floattype,value_real) then
           begin
             location_reset(location,LOC_MMREGISTER,def_cgsize(resultdef));

+ 50 - 59
compiler/arm/narminl.pas

@@ -86,11 +86,7 @@ implementation
                  location.loc := LOC_FPUREGISTER;
                end;
             end;
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16,
-          fpu_fpv4_s16:
+          fpu_vfp_first..fpu_vfp_last:
             begin
               hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
               location_copy(location,left.location);
@@ -127,18 +123,15 @@ implementation
               fpu_fpa10,
               fpu_fpa11:
                 expectloc:=LOC_FPUREGISTER;
-              fpu_vfpv2,
-              fpu_vfpv3,
-              fpu_vfpv4,
-              fpu_vfpv3_d16:
-                expectloc:=LOC_MMREGISTER;
-              fpu_fpv4_s16:
+              else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
+                expectloc:=LOC_MMREGISTER
+              else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
                 begin
                   if tfloatdef(left.resultdef).floattype=s32real then
                     expectloc:=LOC_MMREGISTER
                   else
                     exit(inherited first_abs_real);
-                end;
+                end
               else
                 internalerror(2009112401);
             end;
@@ -158,18 +151,15 @@ implementation
               fpu_fpa10,
               fpu_fpa11:
                 expectloc:=LOC_FPUREGISTER;
-              fpu_vfpv2,
-              fpu_vfpv3,
-              fpu_vfpv4,
-              fpu_vfpv3_d16:
-                expectloc:=LOC_MMREGISTER;
-              fpu_fpv4_s16:
+              else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
+                expectloc:=LOC_MMREGISTER
+              else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
                 begin
                   if tfloatdef(left.resultdef).floattype=s32real then
                     expectloc:=LOC_MMREGISTER
                   else
                     exit(inherited first_sqr_real);
-                end;
+                end
               else
                 internalerror(2009112402);
             end;
@@ -189,18 +179,15 @@ implementation
               fpu_fpa10,
               fpu_fpa11:
                 expectloc:=LOC_FPUREGISTER;
-              fpu_vfpv2,
-              fpu_vfpv3,
-              fpu_vfpv4,
-              fpu_vfpv3_d16:
-                expectloc:=LOC_MMREGISTER;
-              fpu_fpv4_s16:
+              else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
+                expectloc:=LOC_MMREGISTER
+              else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
                 begin
                   if tfloatdef(left.resultdef).floattype=s32real then
                     expectloc:=LOC_MMREGISTER
                   else
                     exit(inherited first_sqrt_real);
-                end;
+                end
               else
                 internalerror(2009112403);
             end;
@@ -262,28 +249,29 @@ implementation
           fpu_fpa10,
           fpu_fpa11:
             current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_ABS,location.register,left.location.register),get_fpu_postfix(resultdef)));
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16:
+          fpu_soft:
+            begin
+              if singleprec then
+                cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_AND,OS_32,tcgint($7fffffff),location.register)
+              else
+                cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_AND,OS_32,tcgint($7fffffff),location.registerhi);
+            end
+          else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
             begin
               if singleprec then
                 pf:=PF_F32
               else
                 pf:=PF_F64;
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VABS,location.register,left.location.register),pf));
-            end;
-          fpu_fpv4_s16:
-            current_asmdata.CurrAsmList.Concat(setoppostfix(taicpu.op_reg_reg(A_VABS,location.register,left.location.register), PF_F32));
-          fpu_soft:
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
+          else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
             begin
-              if singleprec then
-                cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_AND,OS_32,tcgint($7fffffff),location.register)
-              else
-                cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_AND,OS_32,tcgint($7fffffff),location.registerhi);
+              current_asmdata.CurrAsmList.Concat(setoppostfix(taicpu.op_reg_reg(A_VABS,location.register,left.location.register), PF_F32));
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
             end
-        else
-          internalerror(2009111402);
+          else
+            internalerror(2009111402);
         end;
       end;
 
@@ -299,21 +287,22 @@ implementation
           fpu_fpa10,
           fpu_fpa11:
             current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(A_MUF,location.register,left.location.register,left.location.register),get_fpu_postfix(resultdef)));
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16:
+          else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
             begin
               if singleprec then
                 pf:=PF_F32
               else
                 pf:=PF_F64;
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(A_VMUL,location.register,left.location.register,left.location.register),pf));
-            end;
-          fpu_fpv4_s16:
-            current_asmdata.CurrAsmList.Concat(setoppostfix(taicpu.op_reg_reg_reg(A_VMUL,location.register,left.location.register,left.location.register), PF_F32));
-        else
-          internalerror(2009111403);
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
+          else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
+            begin
+              current_asmdata.CurrAsmList.Concat(setoppostfix(taicpu.op_reg_reg_reg(A_VMUL,location.register,left.location.register,left.location.register), PF_F32));
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
+          else
+            internalerror(2009111403);
         end;
       end;
 
@@ -329,21 +318,22 @@ implementation
           fpu_fpa10,
           fpu_fpa11:
             current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_SQT,location.register,left.location.register),get_fpu_postfix(resultdef)));
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16:
+          else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[current_settings.fputype] then
             begin
               if singleprec then
                 pf:=PF_F32
               else
                 pf:=PF_F64;
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VSQRT,location.register,left.location.register),pf));
-            end;
-          fpu_fpv4_s16:
-            current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VSQRT,location.register,left.location.register), PF_F32));
-        else
-          internalerror(2009111402);
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
+          else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype] then
+            begin
+              current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VSQRT,location.register,left.location.register), PF_F32));
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
+          else
+            internalerror(2009111402);
         end;
       end;
 
@@ -457,7 +447,7 @@ implementation
         negproduct : boolean;
         oppostfix : TOpPostfix;
       begin
-         if current_settings.fputype in [fpu_vfpv4] then
+         if FPUARM_HAS_FMA in fpu_capabilities[current_settings.fputype] then
            begin
              negop3:=false;
              negproduct:=false;
@@ -515,6 +505,7 @@ implementation
                oppostfix:=PF_F32;
              current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(op[negproduct,negop3],
                location.register,paraarray[1].location.register,paraarray[2].location.register),oppostfix));
+             cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
            end
          else
            internalerror(2014032301);

+ 20 - 21
compiler/arm/narmmat.pas

@@ -336,7 +336,7 @@ implementation
                     begin
                       tmpreg:=cg.GetIntRegister(current_asmdata.CurrAsmList,OS_INT);
                       { OR low and high parts together }
-                      current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(A_ORR,left.location.register64.reglo,left.location.register64.reghi,tmpreg),PF_S));
+                      current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(A_ORR,tmpreg,left.location.register64.reglo,left.location.register64.reghi),PF_S));
                     end
                   else
                     current_asmdata.CurrAsmList.concat(taicpu.op_reg_const(A_CMP,left.location.register,0));
@@ -367,7 +367,7 @@ implementation
             exit;
           end;
 
-        if (current_settings.fputype<>fpu_fpv4_s16) or
+        if not(FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[current_settings.fputype]) or
           (tfloatdef(resultdef).floattype=s32real) then
           exit(inherited pass_1);
 
@@ -418,10 +418,20 @@ implementation
                 location.register,left.location.register,0),
                 cgsize2fpuoppostfix[def_cgsize(resultdef)]));
             end;
-          fpu_vfpv2,
-          fpu_vfpv3,
-          fpu_vfpv4,
-          fpu_vfpv3_d16:
+          fpu_soft:
+            begin
+              hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
+              location:=left.location;
+              case location.size of
+                OS_32:
+                  cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_XOR,OS_32,tcgint($80000000),location.register);
+                OS_64:
+                  cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_XOR,OS_32,tcgint($80000000),location.registerhi);
+              else
+                internalerror(2014033101);
+              end;
+            end
+          else if FPUARM_HAS_VFP_DOUBLE in fpu_capabilities[init_settings.fputype] then
             begin
               hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
               location:=left.location;
@@ -435,8 +445,9 @@ implementation
 
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VNEG,
                 location.register,left.location.register), pf));
-            end;
-          fpu_fpv4_s16:
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
+            end
+          else if FPUARM_HAS_VFP_SINGLE_ONLY in fpu_capabilities[init_settings.fputype] then
             begin
               hlcg.location_force_mmregscalar(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
               location:=left.location;
@@ -444,19 +455,7 @@ implementation
                 location.register:=cg.getmmregister(current_asmdata.CurrAsmList,location.size);
               current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VNEG,
                 location.register,left.location.register), PF_F32));
-            end;
-          fpu_soft:
-            begin
-              hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
-              location:=left.location;
-              case location.size of
-                OS_32:
-                  cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_XOR,OS_32,tcgint($80000000),location.register);
-                OS_64:
-                  cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_XOR,OS_32,tcgint($80000000),location.registerhi);
-              else
-                internalerror(2014033101);
-              end;
+              cg.maybe_check_for_fpu_exception(current_asmdata.CurrAsmList);
             end
           else
             internalerror(2009112602);

+ 1 - 1
compiler/armgen/armpara.pas

@@ -20,7 +20,7 @@
 }
 unit armpara;
 
-{$mode objfpc}
+{$i fpcdefs.inc}
 
 interface
 

+ 344 - 122
compiler/avr/cgcpu.pas

@@ -60,9 +60,11 @@ unit cgcpu;
 
         procedure a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister); override;
         procedure a_op_reg_reg(list: TAsmList; Op: TOpCG; size: TCGSize; src, dst : TRegister); override;
-        procedure a_op_reg_reg_reg(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister); override;
         procedure a_op_const_reg_reg(list : TAsmList;op : TOpCg;size : tcgsize; a : tcgint;src,dst : tregister); override;
 
+        procedure a_op_const_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; a: tcgint; src, dst: tregister; setflags: boolean; var ovloc: tlocation); override;
+        procedure a_op_reg_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister; setflags: boolean; var ovloc: tlocation); override;
+
         { move instructions }
         procedure a_load_const_reg(list : TAsmList; size: tcgsize; a : tcgint;reg : tregister);override;
         procedure a_load_reg_ref(list : TAsmList; fromsize, tosize: tcgsize; reg : tregister;const ref : treference);override;
@@ -94,6 +96,7 @@ unit cgcpu;
         procedure g_concatcopy_move(list : TAsmList;const source,dest : treference;len : tcgint);
 
         procedure g_overflowcheck(list: TAsmList; const l: tlocation; def: tdef); override;
+        procedure g_overflowCheck_loc(List: TAsmList; const Loc: TLocation; def: TDef; ovloc: tlocation); override;
 
         procedure g_save_registers(list : TAsmList);override;
         procedure g_restore_registers(list : TAsmList);override;
@@ -109,6 +112,8 @@ unit cgcpu;
         function GetLoad(const ref : treference) : tasmop;
         function GetStore(const ref: treference): tasmop;
 
+        procedure gen_multiply(list: TAsmList; op: topcg; size: TCgSize; src2, src1, dst: tregister; check_overflow: boolean; var ovloc: tlocation);
+
       protected
         procedure a_op_reg_reg_internal(list: TAsmList; Op: TOpCG; size: TCGSize; src, srchi, dst, dsthi: TRegister);
         procedure a_op_const_reg_internal(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg, reghi: TRegister);
@@ -432,29 +437,6 @@ unit cgcpu;
        end;
 
 
-     procedure tcgavr.a_op_reg_reg_reg(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister);
-       begin
-         if (op in [OP_MUL,OP_IMUL]) and (size in [OS_16,OS_S16]) and
-            (CPUAVR_HAS_MUL in cpu_capabilities[current_settings.cputype]) then
-           begin
-             getcpuregister(list,NR_R0);
-             getcpuregister(list,NR_R1);
-             list.concat(taicpu.op_reg_reg(A_MUL,src1,src2));
-             emit_mov(list,dst,NR_R0);
-             emit_mov(list,GetNextReg(dst),NR_R1);
-             list.concat(taicpu.op_reg_reg(A_MUL,GetNextReg(src1),src2));
-             list.concat(taicpu.op_reg_reg(A_ADD,GetNextReg(dst),NR_R0));
-             list.concat(taicpu.op_reg_reg(A_MUL,src1,GetNextReg(src2)));
-             list.concat(taicpu.op_reg_reg(A_ADD,GetNextReg(dst),NR_R0));
-             ungetcpuregister(list,NR_R0);
-             list.concat(taicpu.op_reg(A_CLR,NR_R1));
-             ungetcpuregister(list,NR_R1);
-           end
-         else
-          inherited a_op_reg_reg_reg(list,op,size,src1,src2,dst);
-       end;
-
-
      procedure tcgavr.a_op_const_reg_reg(list: TAsmList; op: TOpCg; size: tcgsize; a: tcgint; src, dst: tregister);
        begin
          if (op in [OP_MUL,OP_IMUL]) and (size in [OS_16,OS_S16]) and (a in [2,4,8]) then
@@ -473,6 +455,36 @@ unit cgcpu;
            inherited a_op_const_reg_reg(list,op,size,a,src,dst);
        end;
 
+     procedure tcgavr.a_op_const_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; a: tcgint; src, dst: tregister; setflags: boolean; var ovloc: tlocation);
+       var
+         tmpreg: TRegister;
+       begin
+         if (op in [OP_MUL,OP_IMUL]) and
+            setflags then
+           begin
+             tmpreg:=getintregister(list,size);
+             a_load_const_reg(list,size,a,tmpreg);
+             a_op_reg_reg_reg_checkoverflow(list,op,size,tmpreg,src,dst,setflags,ovloc);
+           end
+         else
+           begin
+             inherited a_op_const_reg_reg_checkoverflow(list, op, size, a, src, dst, setflags, ovloc);
+             ovloc.loc:=LOC_FLAGS;
+           end;
+       end;
+
+     procedure tcgavr.a_op_reg_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister; setflags: boolean; var ovloc: tlocation);
+       begin
+         if (op in [OP_MUL,OP_IMUL]) and
+            setflags then
+           gen_multiply(list,op,size,src1,src2,dst,setflags,ovloc)
+         else
+           begin
+             inherited a_op_reg_reg_reg_checkoverflow(list, op, size, src1, src2, dst, setflags, ovloc);
+             ovloc.loc:=LOC_FLAGS;
+           end;
+       end;
+
 
      procedure tcgavr.a_op_reg_reg_internal(list : TAsmList; Op: TOpCG; size: TCGSize; src, srchi, dst, dsthi: TRegister);
        var
@@ -483,6 +495,7 @@ unit cgcpu;
          paraloc1,paraloc2 : TCGPara;
          l1,l2 : tasmlabel;
          pd : tprocdef;
+         hovloc: tlocation;
 
       { NextRegDst* is sometimes called before the register usage and sometimes afterwards }
        procedure NextSrcDstPreInc;
@@ -598,93 +611,13 @@ unit cgcpu;
 
            OP_MUL,OP_IMUL:
              begin
-               if size in [OS_8,OS_S8] then
-                 begin
-                   if CPUAVR_HAS_MUL in cpu_capabilities[current_settings.cputype] then
-                     begin
-                       cg.a_reg_alloc(list,NR_R0);
-                       cg.a_reg_alloc(list,NR_R1);
-                       list.concat(taicpu.op_reg_reg(topcg2asmop[op],dst,src));
-                       list.concat(taicpu.op_reg(A_CLR,NR_R1));
-                       cg.a_reg_dealloc(list,NR_R1);
-                       list.concat(taicpu.op_reg_reg(A_MOV,dst,NR_R0));
-                       cg.a_reg_dealloc(list,NR_R0);
-                     end
-                   else
-                     begin
-                       if size=OS_8 then
-                         pd:=search_system_proc('fpc_mul_byte')
-                       else
-                          pd:=search_system_proc('fpc_mul_shortint');
-                       paraloc1.init;
-                       paraloc2.init;
-                       paramanager.getintparaloc(list,pd,1,paraloc1);
-                       paramanager.getintparaloc(list,pd,2,paraloc2);
-                       a_load_reg_cgpara(list,OS_8,src,paraloc2);
-                       a_load_reg_cgpara(list,OS_8,dst,paraloc1);
-                       paramanager.freecgpara(list,paraloc2);
-                       paramanager.freecgpara(list,paraloc1);
-                       alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-                       if size=OS_8 then
-                         a_call_name(list,'FPC_MUL_BYTE',false)
-                       else
-                         a_call_name(list,'FPC_MUL_SHORTINT',false);
-                       dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-                       cg.a_reg_alloc(list,NR_R24);
-                       cg.a_load_reg_reg(list,OS_8,OS_8,NR_R24,dst);
-                       cg.a_reg_dealloc(list,NR_R24);
-                       paraloc2.done;
-                       paraloc1.done;
-                     end;
-                 end
-               else if size in [OS_16,OS_S16] then
+               tmpreg:=dst;
+               if size in [OS_16,OS_S16] then
                  begin
-                   if CPUAVR_HAS_MUL in cpu_capabilities[current_settings.cputype] then
-                     begin
-                       tmpreg:=getintregister(list,OS_16);
-                       emit_mov(list,tmpreg,dst);
-                       emit_mov(list,GetNextReg(tmpreg),GetNextReg(dst));
-                       list.concat(taicpu.op_reg_reg(A_MUL,tmpreg,src));
-                       emit_mov(list,dst,NR_R0);
-                       emit_mov(list,GetNextReg(dst),NR_R1);
-                       list.concat(taicpu.op_reg_reg(A_MUL,GetNextReg(tmpreg),src));
-                       list.concat(taicpu.op_reg_reg(A_ADD,GetNextReg(dst),NR_R0));
-                       list.concat(taicpu.op_reg_reg(A_MUL,tmpreg,GetNextReg(src)));
-                       list.concat(taicpu.op_reg_reg(A_ADD,GetNextReg(dst),NR_R0));
-                       list.concat(taicpu.op_reg(A_CLR,NR_R1));
-                     end
-                   else
-                     begin
-                       if size=OS_16 then
-                         pd:=search_system_proc('fpc_mul_word')
-                       else
-                          pd:=search_system_proc('fpc_mul_integer');
-                       paraloc1.init;
-                       paraloc2.init;
-                       paramanager.getintparaloc(list,pd,1,paraloc1);
-                       paramanager.getintparaloc(list,pd,2,paraloc2);
-                       a_load_reg_cgpara(list,OS_16,src,paraloc2);
-                       a_load_reg_cgpara(list,OS_16,dst,paraloc1);
-                       paramanager.freecgpara(list,paraloc2);
-                       paramanager.freecgpara(list,paraloc1);
-                       alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-                       if size=OS_16 then
-                         a_call_name(list,'FPC_MUL_WORD',false)
-                       else
-                         a_call_name(list,'FPC_MUL_INTEGER',false);
-                       dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
-                       cg.a_reg_alloc(list,NR_R24);
-                       cg.a_reg_alloc(list,NR_R25);
-                       cg.a_load_reg_reg(list,OS_8,OS_8,NR_R24,dst);
-                       cg.a_reg_dealloc(list,NR_R24);
-                       cg.a_load_reg_reg(list,OS_8,OS_8,NR_R25,GetNextReg(dst));
-                       cg.a_reg_dealloc(list,NR_R25);
-                       paraloc2.done;
-                       paraloc1.done;
-                     end;
-                 end
-               else
-                 internalerror(2011022002);
+                   tmpreg:=getintregister(list,size);
+                   a_load_reg_reg(list,size,size,dst,tmpreg);
+                 end;
+               gen_multiply(list,op,size,src,tmpreg,dst,false,hovloc);
              end;
 
            OP_DIV,OP_IDIV:
@@ -1673,7 +1606,7 @@ unit cgcpu;
     procedure tcgavr.a_cmp_const_reg_label(list : TAsmList;size : tcgsize;
       cmp_op : topcmp;a : tcgint;reg : tregister;l : tasmlabel);
       var
-        swapped : boolean;
+        swapped , test_msb: boolean;
         tmpreg : tregister;
         i : byte;
       begin
@@ -1704,18 +1637,31 @@ unit cgcpu;
                 end;
             end;
 
-            if swapped then
-              list.concat(taicpu.op_reg_reg(A_CP,NR_R1,reg))
-            else
-              list.concat(taicpu.op_reg_reg(A_CP,reg,NR_R1));
+            { If doing a signed test for x<0, we can simply test the sign bit
+              of the most significant byte }
+            if (cmp_op in [OC_LT,OC_GTE]) and
+               (not swapped) then
+              begin
+                for i:=2 to tcgsize2size[size] do
+                  reg:=GetNextReg(reg);
 
-            for i:=2 to tcgsize2size[size] do
+                list.concat(taicpu.op_reg_reg(A_CP,reg,NR_R1));
+              end
+            else
               begin
-                reg:=GetNextReg(reg);
                 if swapped then
-                  list.concat(taicpu.op_reg_reg(A_CPC,NR_R1,reg))
+                  list.concat(taicpu.op_reg_reg(A_CP,NR_R1,reg))
                 else
-                  list.concat(taicpu.op_reg_reg(A_CPC,reg,NR_R1));
+                  list.concat(taicpu.op_reg_reg(A_CP,reg,NR_R1));
+
+                for i:=2 to tcgsize2size[size] do
+                  begin
+                    reg:=GetNextReg(reg);
+                    if swapped then
+                      list.concat(taicpu.op_reg_reg(A_CPC,NR_R1,reg))
+                    else
+                      list.concat(taicpu.op_reg_reg(A_CPC,reg,NR_R1));
+                  end;
               end;
 
             a_jmp_cond(list,cmp_op,l);
@@ -1900,6 +1846,248 @@ unit cgcpu;
           result:=A_ST;
       end;
 
+    procedure tcgavr.gen_multiply(list: TAsmList; op: topcg; size: TCgSize; src2, src1, dst: tregister; check_overflow: boolean; var ovloc: tlocation);
+
+      procedure perform_r1_check(overflow_label: TAsmLabel; other_reg: TRegister=NR_R1);
+        var
+          ai: taicpu;
+        begin
+          if check_overflow then
+            begin
+              list.concat(taicpu.op_reg_reg(A_OR,NR_R1,other_reg));
+
+              ai:=Taicpu.Op_Sym(A_BRxx,overflow_label);
+              ai.SetCondition(C_NE);
+              ai.is_jmp:=true;
+              list.concat(ai);
+            end;
+        end;
+
+      procedure perform_ovf_check(overflow_label: TAsmLabel);
+        var
+          ai: taicpu;
+        begin
+          if check_overflow then
+            begin
+              ai:=Taicpu.Op_Sym(A_BRxx,overflow_label);
+              ai.SetCondition(C_CS);
+              ai.is_jmp:=true;
+              list.concat(ai);
+            end;
+        end;
+
+      var
+        pd: tprocdef;
+        paraloc1, paraloc2: tcgpara;
+        ai: taicpu;
+        hl, no_overflow: TAsmLabel;
+        name: String;
+      begin
+        ovloc.loc:=LOC_VOID;
+        if size in [OS_8,OS_S8] then
+          begin
+            if (CPUAVR_HAS_MUL in cpu_capabilities[current_settings.cputype]) and
+               (op=OP_MUL) then
+              begin
+                cg.a_reg_alloc(list,NR_R0);
+                cg.a_reg_alloc(list,NR_R1);
+                list.concat(taicpu.op_reg_reg(topcg2asmop[op],src1,src2));
+                // Check overflow
+                if check_overflow then
+                  begin
+                    current_asmdata.getjumplabel(hl);
+                    list.concat(taicpu.op_reg_reg(A_AND,NR_R1,NR_R1));
+
+                     { Clear carry as it's not affected by any of the instructions }
+                    list.concat(taicpu.op_none(A_CLC));
+
+                    ai:=Taicpu.Op_Sym(A_BRxx,hl);
+                    ai.SetCondition(C_EQ);
+                    ai.is_jmp:=true;
+                    list.concat(ai);
+
+                    list.concat(taicpu.op_reg(A_CLR,NR_R1));
+                    list.concat(taicpu.op_none(A_SEC));
+
+                    a_label(list,hl);
+
+                    ovloc.loc:=LOC_FLAGS;
+                  end
+                else
+                  list.concat(taicpu.op_reg(A_CLR,NR_R1));
+                cg.a_reg_dealloc(list,NR_R1);
+
+                list.concat(taicpu.op_reg_reg(A_MOV,dst,NR_R0));
+                cg.a_reg_dealloc(list,NR_R0);
+              end
+            else if (CPUAVR_HAS_MUL in cpu_capabilities[current_settings.cputype]) and
+               (op=OP_IMUL) then
+              begin
+                cg.a_reg_alloc(list,NR_R0);
+                cg.a_reg_alloc(list,NR_R1);
+                list.concat(taicpu.op_reg_reg(A_MULS,src1,src2));
+                list.concat(taicpu.op_reg_reg(A_MOV,dst,NR_R0));
+
+                // Check overflow
+                if check_overflow then
+                  begin
+                    current_asmdata.getjumplabel(no_overflow);
+
+                    list.concat(taicpu.op_reg_const(A_SBRC,NR_R0,7));
+                    list.concat(taicpu.op_reg(A_INC,NR_R1));
+                    list.concat(taicpu.op_reg(A_TST,NR_R1));
+
+                    ai:=Taicpu.Op_Sym(A_BRxx,no_overflow);
+                    ai.SetCondition(C_EQ);
+                    ai.is_jmp:=true;
+                    list.concat(ai);
+
+                    list.concat(taicpu.op_reg(A_CLR,NR_R1));
+
+                    a_call_name(list,'FPC_OVERFLOW',false);
+
+                    a_label(list,no_overflow);
+
+                    ovloc.loc:=LOC_VOID;
+                  end
+                else
+                  list.concat(taicpu.op_reg(A_CLR,NR_R1));
+                cg.a_reg_dealloc(list,NR_R1);
+                cg.a_reg_dealloc(list,NR_R0);
+              end
+            else
+              begin
+                if size=OS_8 then
+                  name:='fpc_mul_byte'
+                else
+                  name:='fpc_mul_shortint';
+
+                if check_overflow then
+                  name:=name+'_checkoverflow';
+
+                pd:=search_system_proc(name);
+                paraloc1.init;
+                paraloc2.init;
+                paramanager.getintparaloc(list,pd,1,paraloc1);
+                paramanager.getintparaloc(list,pd,2,paraloc2);
+                a_load_reg_cgpara(list,OS_8,src1,paraloc2);
+                a_load_reg_cgpara(list,OS_8,src2,paraloc1);
+                paramanager.freecgpara(list,paraloc2);
+                paramanager.freecgpara(list,paraloc1);
+                alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+                a_call_name(list,upper(name),false);
+                dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+                cg.a_reg_alloc(list,NR_R24);
+                cg.a_load_reg_reg(list,OS_8,OS_8,NR_R24,dst);
+                cg.a_reg_dealloc(list,NR_R24);
+                paraloc2.done;
+                paraloc1.done;
+              end;
+          end
+        else if size in [OS_16,OS_S16] then
+          begin
+            if (CPUAVR_HAS_MUL in cpu_capabilities[current_settings.cputype]) and
+               ((not check_overflow) or
+                (size=OS_16)) then
+              begin
+                if check_overflow then
+                  begin
+                    current_asmdata.getjumplabel(hl);
+                    current_asmdata.getjumplabel(no_overflow);
+                  end;
+                cg.a_reg_alloc(list,NR_R0);
+                cg.a_reg_alloc(list,NR_R1);
+                list.concat(taicpu.op_reg_reg(A_MUL,src2,src1));
+                emit_mov(list,dst,NR_R0);
+                emit_mov(list,GetNextReg(dst),NR_R1);
+                list.concat(taicpu.op_reg_reg(A_MUL,GetNextReg(src1),src2));
+                perform_r1_check(hl);
+                list.concat(taicpu.op_reg_reg(A_ADD,GetNextReg(dst),NR_R0));
+                perform_ovf_check(hl);
+                list.concat(taicpu.op_reg_reg(A_MUL,src1,GetNextReg(src2)));
+                perform_r1_check(hl);
+                list.concat(taicpu.op_reg_reg(A_ADD,GetNextReg(dst),NR_R0));
+                perform_ovf_check(hl);
+
+                if check_overflow then
+                  begin
+                    list.concat(taicpu.op_reg_reg(A_MUL,GetNextReg(src1),GetNextReg(src2)));
+                    perform_r1_check(hl,NR_R0);
+                  end;
+
+                cg.a_reg_dealloc(list,NR_R0);
+                list.concat(taicpu.op_reg(A_CLR,NR_R1));
+
+                if check_overflow then
+                  begin
+                    {
+                      CLV/CLC
+                      JMP no_overflow
+                    .hl:
+                      CLR R1
+                      SEV/SEC
+                    .no_overflow:
+                    }
+
+                    if op=OP_MUL then
+                      list.concat(taicpu.op_none(A_CLC))
+                    else
+                      list.concat(taicpu.op_none(A_CLV));
+
+                    a_jmp_always(list,no_overflow);
+
+                    a_label(list,hl);
+
+                    list.concat(taicpu.op_reg(A_CLR,NR_R1));
+
+                    if op=OP_MUL then
+                      list.concat(taicpu.op_none(A_SEC))
+                    else
+                      list.concat(taicpu.op_none(A_SEV));
+
+                    a_label(list,no_overflow);
+
+                    ovloc.loc:=LOC_FLAGS;
+                  end;
+
+                cg.a_reg_dealloc(list,NR_R1);
+              end
+            else
+              begin
+                if size=OS_16 then
+                  name:='fpc_mul_word'
+                else
+                  name:='fpc_mul_integer';
+
+                if check_overflow then
+                  name:=name+'_checkoverflow';
+
+                pd:=search_system_proc(name);
+                paraloc1.init;
+                paraloc2.init;
+                paramanager.getintparaloc(list,pd,1,paraloc1);
+                paramanager.getintparaloc(list,pd,2,paraloc2);
+                a_load_reg_cgpara(list,OS_16,src1,paraloc2);
+                a_load_reg_cgpara(list,OS_16,src2,paraloc1);
+                paramanager.freecgpara(list,paraloc2);
+                paramanager.freecgpara(list,paraloc1);
+                alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+                a_call_name(list,upper(name),false);
+                dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+                cg.a_reg_alloc(list,NR_R24);
+                cg.a_reg_alloc(list,NR_R25);
+                cg.a_load_reg_reg(list,OS_8,OS_8,NR_R24,dst);
+                cg.a_reg_dealloc(list,NR_R24);
+                cg.a_load_reg_reg(list,OS_8,OS_8,NR_R25,GetNextReg(dst));
+                cg.a_reg_dealloc(list,NR_R25);
+                paraloc2.done;
+                paraloc1.done;
+              end;
+          end
+        else
+          internalerror(2011022002);
+      end;
+
 
     procedure tcgavr.g_proc_entry(list : TAsmList;localsize : longint;nostackframe:boolean);
       var
@@ -1908,7 +2096,8 @@ unit cgcpu;
       begin
         if current_procinfo.procdef.isempty then
           exit;
-        if po_interrupt in current_procinfo.procdef.procoptions then
+        if (po_interrupt in current_procinfo.procdef.procoptions) and
+          (not nostackframe) then
           begin
             { check if the framepointer is actually used, this is done here because
               we have to know the size of the locals (must be 0), avr does not know
@@ -2007,7 +2196,8 @@ unit cgcpu;
           exit;
         if po_interrupt in current_procinfo.procdef.procoptions then
           begin
-            if not(current_procinfo.procdef.isempty) then
+            if not(current_procinfo.procdef.isempty) and
+              (not nostackframe) then
               begin
                 regs:=rg[R_INTREGISTER].used_in_proc;
                 if current_procinfo.framepointer<>NR_NO then
@@ -2374,7 +2564,7 @@ unit cgcpu;
         end;
 
 
-    procedure tcgavr.g_overflowCheck(list : TAsmList;const l : tlocation;def : tdef);
+    procedure tcgavr.g_overflowcheck(list: TAsmList; const l: tlocation; def: tdef);
       var
         hl : tasmlabel;
         ai : taicpu;
@@ -2400,6 +2590,38 @@ unit cgcpu;
       end;
 
 
+    procedure tcgavr.g_overflowCheck_loc(List: TAsmList; const Loc: TLocation; def: TDef; ovloc: tlocation);
+      var
+        hl : tasmlabel;
+        ai : taicpu;
+        cond : TAsmCond;
+      begin
+        if not(cs_check_overflow in current_settings.localswitches) then
+         exit;
+
+        case ovloc.loc of
+          LOC_FLAGS:
+            begin
+              current_asmdata.getjumplabel(hl);
+              if not ((def.typ=pointerdef) or
+                     ((def.typ=orddef) and
+                      (torddef(def).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar,
+                                                pasbool1,pasbool8,pasbool16,pasbool32,pasbool64]))) then
+                cond:=C_VC
+              else
+                cond:=C_CC;
+              ai:=Taicpu.Op_Sym(A_BRxx,hl);
+              ai.SetCondition(cond);
+              ai.is_jmp:=true;
+              list.concat(ai);
+
+              a_call_name(list,'FPC_OVERFLOW',false);
+              a_label(list,hl);
+            end;
+        end;
+      end;
+
+
     procedure tcgavr.g_save_registers(list: TAsmList);
       begin
         { this is done by the entry code }

+ 2 - 0
compiler/avr/cpuinfo.pas

@@ -14,6 +14,8 @@
 
 Unit CPUInfo;
 
+{$i fpcdefs.inc}
+
 Interface
 
   uses

+ 23 - 0
compiler/avr/navradd.pas

@@ -202,6 +202,29 @@ interface
               hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
           end;
 
+        if (not unsigned) and
+          (right.location.loc=LOC_CONSTANT) and
+          (right.location.value=0) and
+          (getresflags(unsigned) in [F_LT,F_GE]) then
+          begin
+            { This is a simple sign test, where we can just test the msb }
+            tmpreg1:=left.location.register;
+            for i:=2 to tcgsize2size[left.location.size] do
+              begin
+                if i=5 then
+                  tmpreg1:=left.location.registerhi
+                else
+                  tmpreg1:=cg.GetNextReg(tmpreg1);
+              end;
+
+            current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CP,tmpreg1,NR_R1));
+
+            location_reset(location,LOC_FLAGS,OS_NO);
+            location.resflags:=getresflags(unsigned);
+
+            exit;
+          end;
+
         if right.location.loc=LOC_CONSTANT then
           begin
             { decrease register pressure on registers >= r16 }

+ 25 - 1
compiler/avr/navrinl.pas

@@ -26,10 +26,12 @@ unit navrinl;
   interface
 
     uses
-      node,ninl,ncginl;
+      node,ninl,ncginl, aasmbase;
 
     type
       tavrinlinenode = class(tcginlinenode)
+        procedure second_abs_long; override;
+
         function pass_typecheck_cpu:tnode;override;
         function first_cpu : tnode;override;
         procedure pass_generate_code_cpu;override;
@@ -42,11 +44,33 @@ unit navrinl;
       aasmdata,
       aasmcpu,
       symdef,
+      defutil,
       hlcgobj,
       pass_2,
       cgbase, cgobj, cgutils,
       cpubase;
 
+    procedure tavrinlinenode.second_abs_long;
+      var
+        hl: TAsmLabel;
+        size: TCgSize;
+      begin
+        secondpass(left);
+        hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
+
+        location:=left.location;
+        location.register:=hlcg.getintregister(current_asmdata.CurrAsmList,left.resultdef);
+
+        size:=def_cgsize(left.resultdef);
+
+        current_asmdata.getjumplabel(hl);
+        cg.a_cmp_const_reg_label(current_asmdata.CurrAsmList,size,OC_GTE,0,left.location.register,hl);
+        cg.a_op_reg_reg(current_asmdata.CurrAsmList,OP_NEG,size,left.location.register,location.register);
+
+        cg.a_label(current_asmdata.CurrAsmList,hl);
+      end;
+
+
     function tavrinlinenode.pass_typecheck_cpu : tnode;
       begin
         Result:=nil;

+ 2 - 0
compiler/ccharset.pas

@@ -16,6 +16,8 @@
 {$mode objfpc}
 unit ccharset;
 
+{$i fpcdefs.inc}
+
   interface
 
     type

+ 1 - 1
compiler/cfidwarf.pas

@@ -247,7 +247,7 @@ implementation
         FLastLocLabel:=nil;
         code_alignment_factor:=1;
         data_alignment_factor:=-4;
-        FDwarfList:=TLinkedList.Create;
+        FDwarfList:=TAsmList.Create;
       end;
 
 

+ 9 - 2
compiler/cgobj.pas

@@ -453,7 +453,8 @@ unit cgobj;
 
           { some CPUs do not support hardware fpu exceptions, this procedure is called after instructions which
             might set FPU exception related flags, so it has to check these flags if needed and throw an exeception }
-          procedure g_check_for_fpu_exception(list: TAsmList); virtual;
+          procedure g_check_for_fpu_exception(list : TAsmList; force,clear : boolean); virtual;
+          procedure maybe_check_for_fpu_exception(list: TAsmList);
 
          protected
           function g_indirect_sym_load(list:TAsmList;const symname: string; const flags: tindsymflags): tregister;virtual;
@@ -2930,12 +2931,18 @@ implementation
       end;
 
 
-    procedure tcg.g_check_for_fpu_exception(list: TAsmList);
+    procedure tcg.g_check_for_fpu_exception(list: TAsmList;force,clear : boolean);
       begin
         { empty by default }
       end;
 
 
+    procedure tcg.maybe_check_for_fpu_exception(list: TAsmList);
+      begin
+        current_procinfo.FPUExceptionCheckNeeded:=true;
+        g_check_for_fpu_exception(list,false,true);
+      end;
+
 {*****************************************************************************
                                     TCG64
 *****************************************************************************}

+ 1 - 2
compiler/cresstr.pas

@@ -197,8 +197,7 @@ uses
         tcb:=ctai_typedconstbuilder.create([tcalo_new_section,tcalo_vectorized_dead_strip_end,tcalo_data_force_indirect,tcalo_is_public_asm]);
         tcb.begin_anonymous_record(internaltypeprefixName[itp_emptyrec],
           default_settings.packrecords,sizeof(pint),
-          targetinfos[target_info.system]^.alignment.recordalignmin,
-          targetinfos[target_info.system]^.alignment.maxCrecordalign);
+          targetinfos[target_info.system]^.alignment.recordalignmin);
         current_asmdata.AsmLists[al_resourcestrings].concatList(
           tcb.get_final_asmlist_vectorized_dead_strip(
             tcb.end_anonymous_record,'RESSTR','',current_module.localsymtable,sizeof(pint)

+ 16 - 0
compiler/dbgdwarf.pas

@@ -48,6 +48,12 @@ interface
       DbgBase;
 
     type
+      {$ifdef avr}
+      // re-map to larger types because of offsets required to distinguish different memory spaces
+      puint = cardinal;
+      pint = longint;
+      {$endif avr}
+
       { Tag names and codes.   }
       tdwarf_tag = (DW_TAG_padding := $00,DW_TAG_array_type := $01,
         DW_TAG_class_type := $02,DW_TAG_entry_point := $03,
@@ -538,6 +544,11 @@ implementation
       { Implementation-defined range start.   }
       DW_LANG_hi_user = $ffff;
 
+      {$ifdef avr}
+      // More space required to include memory type offset
+      aitconst_ptr_unaligned = aitconst_32bit_unaligned;
+      {$endif avr}
+
     type
       { Names and codes for macro information.   }
       tdwarf_macinfo_record_type = (DW_MACINFO_define := 1,DW_MACINFO_undef := 2,
@@ -3142,7 +3153,12 @@ implementation
                  end;
                *)
                templist.concat(tai_const.create_8bit(3));
+               {$ifdef avr}
+               // Add $800000 to indicate that the address is in memory space
+               templist.concat(tai_const.create_int_dataptr_unaligned(sym.addroffset + $800000, aitconst_ptr_unaligned));
+               {$else}
                templist.concat(tai_const.create_int_dataptr_unaligned(sym.addroffset));
+               {$endif}
                blocksize:=1+sizeof(puint);
             end;
           toasm :

+ 16 - 3
compiler/defcmp.pas

@@ -424,7 +424,8 @@ implementation
                             end;
                           uvoid,
                           pasbool1,pasbool8,pasbool16,pasbool32,pasbool64,
-                          bool8bit,bool16bit,bool32bit,bool64bit:
+                          bool8bit,bool16bit,bool32bit,bool64bit,
+                          scurrency:
                             eq:=te_equal;
                           else
                             internalerror(200210061);
@@ -808,9 +809,9 @@ implementation
                case def_from.typ of
                  orddef :
                    begin { ordinal to real }
-                     { only for implicit and internal typecasts in tp/delphi }
+                     { only for implicit and internal typecasts in tp }
                      if (([cdo_explicit,cdo_internal] * cdoptions <> [cdo_explicit]) or
-                         ([m_tp7,m_delphi] * current_settings.modeswitches = [])) and
+                         (not(m_tp7 in current_settings.modeswitches))) and
                         (is_integer(def_from) or
                          (is_currency(def_from) and
                           (s64currencytype.typ = floatdef))) then
@@ -1027,6 +1028,11 @@ implementation
                                       end
                                     else if subeq>te_convert_l6 then
                                       eq:=pred(subeq)
+                                    else if subeq=te_convert_operator then
+                                      { the operater needs to be applied by element, so we tell
+                                        the caller that it's some unpreffered conversion and let
+                                        it handle the per-element stuff }
+                                      eq:=te_convert_l6
                                     else
                                       eq:=subeq;
                                    doconv:=tc_arrayconstructor_2_dynarray;
@@ -2500,6 +2506,13 @@ implementation
             exit;
           end;
 
+        if (realself.objecttype in [odt_objcclass,odt_objcprotocol]) and
+           (otherdef=objc_idtype) then
+          begin
+            result:=true;
+            exit;
+          end;
+
         if (otherdef.typ<>objectdef) then
           begin
             result:=false;

+ 19 - 0
compiler/elfbase.pas

@@ -140,6 +140,11 @@ interface
     STT_TLS     = 6;
     STT_GNU_IFUNC = 10;
 
+    STV_DEFAULT = 0;
+    STV_INTERNAL = 1;
+    STV_HIDDEN = 2;
+    STV_PROTECTED = 3;
+
     { program header types }
     PT_NULL     = 0;
     PT_LOAD     = 1;
@@ -435,6 +440,9 @@ interface
     procedure MaybeSwapElfverneed(var h: TElfverneed);
     procedure MaybeSwapElfvernaux(var h: TElfvernaux);
 
+    function GetElfSymbolVisibility(other: byte): byte; inline;
+    procedure SetElfSymbolVisibility(var other: byte; vis: byte); inline;
+
 implementation
 
     uses
@@ -682,4 +690,15 @@ implementation
             end;
       end;
 
+
+    function GetElfSymbolVisibility(other: byte): byte; inline;
+      begin
+        result:=other and 3;
+      end;
+
+    procedure SetElfSymbolVisibility(var other: byte; vis: byte);
+      begin
+        other:=(other and not(3)) or vis;
+      end;
+
 end.

+ 13 - 7
compiler/entfile.pas

@@ -126,9 +126,9 @@ const
 
   ibmainname       = 90;
   ibsymtableoptions = 91;
-  ibrecsymtableoptions = 91;
   ibpackagefiles   = 92;
   ibpackagename    = 93;
+  ibrecsymtableoptions = 94;
   { target-specific things }
   iblinkotherframeworks = 100;
   ibjvmnamespace = 101;
@@ -1202,7 +1202,9 @@ function tentryfile.getrealsize(sizeofreal : longint):entryreal;
 var
   e : entryreal;
   d : double;
+  di : qword;{ integer of same size as double }
   s : single;
+  si : dword; { integer of same size as single }
 begin
   if sizeofreal=sizeof(e) then
     begin
@@ -1242,9 +1244,11 @@ begin
        end;
       readdata(d,sizeof(d));
       if change_endian then
-        result:=swapendian(pqword(@d)^)
-      else
-        result:=d;
+        begin
+          di:=swapendian(pqword(@d)^);
+          d:=pdouble(@di)^;
+        end;
+      result:=d;
       inc(entryidx,sizeof(d));
       result:=d;
 {$ifdef DEBUG_PPU}
@@ -1267,9 +1271,11 @@ begin
        end;
       readdata(s,sizeof(s));
       if change_endian then
-        result:=swapendian(pdword(@s)^)
-      else
-        result:=s;
+        begin
+          si:=swapendian(pdword(@s)^);
+          s:=psingle(@si)^;
+        end;
+      result:=s;
       inc(entryidx,sizeof(s));
       result:=s;
 {$ifdef DEBUG_PPU}

+ 5 - 0
compiler/fmodule.pas

@@ -207,6 +207,9 @@ interface
         { contains a list of specializations for which the method bodies need
           to be generated }
         pendingspecializations : TFPHashObjectList;
+        { list of attributes that are used and thus need their construction
+          functions generated }
+        used_rtti_attrs: tfpobjectlist;
 
         { this contains a list of units that needs to be waited for until the
           unit can be finished (code generated, etc.); this is needed to handle
@@ -611,6 +614,7 @@ implementation
         pendingspecializations:=tfphashobjectlist.create(false);
         waitingforunit:=tfpobjectlist.create(false);
         waitingunits:=tfpobjectlist.create(false);
+        used_rtti_attrs:=tfpobjectlist.create(false);
         globalsymtable:=nil;
         localsymtable:=nil;
         globalmacrosymtable:=nil;
@@ -709,6 +713,7 @@ implementation
         pendingspecializations.free;
         waitingforunit.free;
         waitingunits.free;
+        used_rtti_attrs.free;
         stringdispose(asmprefix);
         stringdispose(deprecatedmsg);
         stringdispose(namespace);

+ 4 - 0
compiler/fpcdefs.inc

@@ -96,6 +96,7 @@
   {$define SUPPORT_SAFECALL}
   {$define SUPPORT_GET_FRAME}
   {$define cpucapabilities}
+  {$define fpucapabilities}
   {$define cpucg64shiftsupport}
 {$endif i386}
 
@@ -113,6 +114,7 @@
   {$define SUPPORT_SAFECALL}
   {$define SUPPORT_GET_FRAME}
   {$define cpucapabilities}
+  {$define fpucapabilities}
 {$endif x86_64}
 
 {$ifdef sparc}
@@ -177,6 +179,7 @@
   {$define cputargethasfixedstack}
   {$define cpurefshaveindexreg}
   {$define cpucapabilities}
+  {$define fpucapabilities}
   {$define SUPPORT_SAFECALL}
   {$define SUPPORT_GET_FRAME}
   { default to armel }
@@ -206,6 +209,7 @@
   {$define cpufpemu}
   {$define cpurefshaveindexreg}
   {$define cpucapabilities}
+  {$define fpucapabilities}
   {$define cpuneedsmulhelper}
   {$define cpuneedsdivhelper}
   {$define cpu_uses_separate_address_registers}

+ 2 - 0
compiler/generic/cpuinfo.pas

@@ -15,6 +15,8 @@
 
 Unit CPUInfo;
 
+{$i fpcdefs.inc}
+
 Interface
 
   uses

+ 7 - 5
compiler/globals.pas

@@ -55,7 +55,7 @@ interface
           m_pointer_2_procedure,m_autoderef,m_tp_procvar,m_initfinal,m_default_ansistring,
           m_out,m_default_para,m_duplicate_names,m_hintdirective,
           m_property,m_default_inline,m_except,m_advanced_records,
-          m_array_operators];
+          m_array_operators,m_prefixed_attributes];
        delphiunicodemodeswitches = delphimodeswitches + [m_systemcodepage,m_default_unicodestring];
        fpcmodeswitches =
          [m_fpc,m_string_pchar,m_nested_comment,m_repeat_forward,
@@ -399,6 +399,8 @@ interface
        defaultmainaliasname = 'main';
        mainaliasname : string = defaultmainaliasname;
 
+       custom_attribute_suffix = 'ATTRIBUTE';
+
       LTOExt: TCmdStr = '';
 
     const
@@ -536,14 +538,14 @@ interface
         fputype : fpu_x87;
   {$endif i8086}
   {$ifdef riscv32}
-        cputype : cpu_rv32imafd;
-        optimizecputype : cpu_rv32imafd;
+        cputype : cpu_rv32ima;
+        optimizecputype : cpu_rv32ima;
         asmcputype : cpu_none;
         fputype : fpu_fd;
   {$endif riscv32}
   {$ifdef riscv64}
-        cputype : cpu_rv64imafdc;
-        optimizecputype : cpu_rv64imafdc;
+        cputype : cpu_rv64imac;
+        optimizecputype : cpu_rv64imac;
         asmcputype : cpu_none;
         fputype : fpu_fd;
   {$endif riscv64}

+ 4 - 2
compiler/globtype.pas

@@ -490,7 +490,8 @@ interface
          m_isolike_mod,         { mod operation as it is required by an iso compatible compiler }
          m_array_operators,     { use Delphi compatible array operators instead of custom ones ("+") }
          m_multi_helpers,       { helpers can appear in multiple scopes simultaneously }
-         m_array2dynarray       { regular arrays can be implicitly converted to dynamic arrays }
+         m_array2dynarray,      { regular arrays can be implicitly converted to dynamic arrays }
+         m_prefixed_attributes  { enable attributes that are defined before the type they belong to }
        );
        tmodeswitches = set of tmodeswitch;
 
@@ -681,7 +682,8 @@ interface
          'ISOMOD',
          'ARRAYOPERATORS',
          'MULTIHELPERS',
-         'ARRAYTODYNARRAY'
+         'ARRAYTODYNARRAY',
+         'PREFIXEDATTRIBUTES'
          );
 
 

+ 3 - 13
compiler/hlcgobj.pas

@@ -3935,7 +3935,7 @@ implementation
         end
       else
         begin
-          sym:=current_asmdata.DefineAsmSymbol(wrappername,AB_LOCAL,AT_FUNCTION,procdef);
+          sym:=current_asmdata.DefineAsmSymbol(wrappername,AB_PRIVATE_EXTERN,AT_FUNCTION,procdef);
           list.concat(Tai_symbol.Create(sym,0));
         end;
       a_jmp_external_name(list,externalname);
@@ -4590,14 +4590,7 @@ implementation
     begin
       item:=TCmdStrListItem(current_procinfo.procdef.aliasnames.first);
       firstitem:=item;
-      global:=
-        (cs_profile in current_settings.moduleswitches) or
-        { smart linking using a library requires to promote
-          all non-nested procedures to AB_GLOBAL
-          otherwise you get undefined symbol error at linking
-          for msdos  target with -CX option for instance }
-        (create_smartlink_library and not is_nested_pd(current_procinfo.procdef)) or
-        (po_global in current_procinfo.procdef.procoptions);
+      global:=current_procinfo.procdef.needsglobalasmsym;
       while assigned(item) do
         begin
 {$ifdef arm}
@@ -4614,13 +4607,10 @@ implementation
               if global then
                 begin
                   list.concat(tai_symbolpair.create(spk_set_global,item.str,firstitem.str));
-                  { needed for generating the tai_symbol_end }
-                  current_asmdata.DefineAsmSymbol(item.str,AB_GLOBAL,AT_FUNCTION,current_procinfo.procdef);
                 end
               else
                 begin
                   list.concat(tai_symbolpair.create(spk_set,item.str,firstitem.str));
-                  current_asmdata.DefineAsmSymbol(item.str,AB_LOCAL,AT_FUNCTION,current_procinfo.procdef);
                 end;
             end
           else
@@ -4628,7 +4618,7 @@ implementation
               if global then
                 list.concat(Tai_symbol.createname_global(item.str,AT_FUNCTION,0,current_procinfo.procdef))
               else
-                list.concat(Tai_symbol.createname(item.str,AT_FUNCTION,0,current_procinfo.procdef));
+                list.concat(Tai_symbol.Createname_hidden(item.str,AT_FUNCTION,0,current_procinfo.procdef));
               if not(af_stabs_use_function_absolute_addresses in target_asm.flags) then
                 list.concat(Tai_function_name.create(item.str));
             end;

+ 19 - 3
compiler/i386/cpuinfo.pas

@@ -165,13 +165,17 @@ type
        CPUX86_HAS_BMI1,
        CPUX86_HAS_BMI2,
        CPUX86_HAS_POPCNT,
-       CPUX86_HAS_AVXUNIT,
        CPUX86_HAS_LZCNT,
        CPUX86_HAS_MOVBE,
        CPUX86_HAS_FMA,
        CPUX86_HAS_FMA4
       );
 
+   tfpuflags =
+      (FPUX86_HAS_AVXUNIT,
+       FPUX86_HAS_32MMREGS
+      );
+
  const
    cpu_capabilities : array[tcputype] of set of tcpuflags = (
      { cpu_none      } [],
@@ -183,10 +187,22 @@ type
      { cpu_Pentium4  } [CPUX86_HAS_CMOV,CPUX86_HAS_SSEUNIT,CPUX86_HAS_SSE2],
      { cpu_PentiumM  } [CPUX86_HAS_CMOV,CPUX86_HAS_SSEUNIT,CPUX86_HAS_SSE2],
      { cpu_core_i    } [CPUX86_HAS_CMOV,CPUX86_HAS_SSEUNIT,CPUX86_HAS_SSE2,CPUX86_HAS_POPCNT],
-     { cpu_core_avx  } [CPUX86_HAS_CMOV,CPUX86_HAS_SSEUNIT,CPUX86_HAS_SSE2,CPUX86_HAS_POPCNT,CPUX86_HAS_AVXUNIT],
-     { cpu_core_avx2 } [CPUX86_HAS_CMOV,CPUX86_HAS_SSEUNIT,CPUX86_HAS_SSE2,CPUX86_HAS_POPCNT,CPUX86_HAS_AVXUNIT,CPUX86_HAS_BMI1,CPUX86_HAS_BMI2,CPUX86_HAS_LZCNT,CPUX86_HAS_MOVBE,CPUX86_HAS_FMA]
+     { cpu_core_avx  } [CPUX86_HAS_CMOV,CPUX86_HAS_SSEUNIT,CPUX86_HAS_SSE2,CPUX86_HAS_POPCNT],
+     { cpu_core_avx2 } [CPUX86_HAS_CMOV,CPUX86_HAS_SSEUNIT,CPUX86_HAS_SSE2,CPUX86_HAS_POPCNT,CPUX86_HAS_BMI1,CPUX86_HAS_BMI2,CPUX86_HAS_LZCNT,CPUX86_HAS_MOVBE,CPUX86_HAS_FMA]
    );
 
+   fpu_capabilities : array[tfputype] of set of tfpuflags = (
+      { fpu_none     } [],
+      { fpu_x87      } [],
+      { fpu_sse      } [],
+      { fpu_sse2     } [],
+      { fpu_sse3     } [],
+      { fpu_ssse3    } [],
+      { fpu_sse41    } [],
+      { fpu_sse42    } [],
+      { fpu_avx      } [FPUX86_HAS_AVXUNIT],
+      { fpu_avx2     } [FPUX86_HAS_AVXUNIT]
+   );
 
 Implementation
 

+ 0 - 1
compiler/i386/cputarg.pas

@@ -106,7 +106,6 @@ implementation
 
       ,ogcoff
       ,ogelf
-      ,ogmacho
       ,cpuelf
 
 {**************************************

+ 1 - 1
compiler/i386/hlcgcpu.pas

@@ -394,7 +394,7 @@ implementation
       if make_global then
         List.concat(Tai_symbol.Createname_global(labelname,AT_FUNCTION,0,procdef))
       else
-        List.concat(Tai_symbol.Createname(labelname,AT_FUNCTION,0,procdef));
+        List.concat(Tai_symbol.Createname_hidden(labelname,AT_FUNCTION,0,procdef));
 
       { set param1 interface to self  }
       g_adjust_self_value(list,procdef,ioffset);

+ 314 - 34
compiler/i386/i386att.inc

@@ -783,8 +783,10 @@
 'vcvtdq2ps',
 'vcvtpd2dq',
 'vcvtpd2ps',
+'vcvtph2ps',
 'vcvtps2dq',
 'vcvtps2pd',
+'vcvtps2ph',
 'vcvtsd2si',
 'vcvtsd2ss',
 'vcvtsi2sd',
@@ -1053,66 +1055,66 @@
 'vpgatherdq',
 'vpgatherqd',
 'vpgatherqq',
-'vfmadd132pd',
-'vfmadd213pd',
-'vfmadd231pd',
 'vfmaddpd',
+'vfmadd132pd',
 'vfmadd132ps',
-'vfmadd213ps',
-'vfmadd231ps',
 'vfmadd132sd',
-'vfmadd213sd',
-'vfmadd231sd',
 'vfmadd132ss',
+'vfmadd213pd',
+'vfmadd213ps',
+'vfmadd213sd',
 'vfmadd213ss',
+'vfmadd231pd',
+'vfmadd231ps',
+'vfmadd231sd',
 'vfmadd231ss',
 'vfmaddsub132pd',
-'vfmaddsub213pd',
-'vfmaddsub231pd',
 'vfmaddsub132ps',
+'vfmaddsub213pd',
 'vfmaddsub213ps',
+'vfmaddsub231pd',
 'vfmaddsub231ps',
-'vfmsubadd132pd',
-'vfmsubadd213pd',
-'vfmsubadd231pd',
-'vfmsubadd132ps',
-'vfmsubadd213ps',
-'vfmsubadd231ps',
 'vfmsub132pd',
-'vfmsub213pd',
-'vfmsub231pd',
 'vfmsub132ps',
-'vfmsub213ps',
-'vfmsub231ps',
 'vfmsub132sd',
-'vfmsub213sd',
-'vfmsub231sd',
 'vfmsub132ss',
+'vfmsub213pd',
+'vfmsub213ps',
+'vfmsub213sd',
 'vfmsub213ss',
+'vfmsub231pd',
+'vfmsub231ps',
+'vfmsub231sd',
 'vfmsub231ss',
+'vfmsubadd132pd',
+'vfmsubadd132ps',
+'vfmsubadd213pd',
+'vfmsubadd213ps',
+'vfmsubadd231pd',
+'vfmsubadd231ps',
 'vfnmadd132pd',
-'vfnmadd213pd',
-'vfnmadd231pd',
 'vfnmadd132ps',
-'vfnmadd213ps',
-'vfnmadd231ps',
 'vfnmadd132sd',
-'vfnmadd213sd',
-'vfnmadd231sd',
 'vfnmadd132ss',
+'vfnmadd213pd',
+'vfnmadd213ps',
+'vfnmadd213sd',
 'vfnmadd213ss',
+'vfnmadd231pd',
+'vfnmadd231ps',
+'vfnmadd231sd',
 'vfnmadd231ss',
 'vfnmsub132pd',
-'vfnmsub213pd',
-'vfnmsub231pd',
 'vfnmsub132ps',
-'vfnmsub213ps',
-'vfnmsub231ps',
 'vfnmsub132sd',
-'vfnmsub213sd',
-'vfnmsub231sd',
 'vfnmsub132ss',
+'vfnmsub213pd',
+'vfnmsub213ps',
+'vfnmsub213sd',
 'vfnmsub213ss',
+'vfnmsub231pd',
+'vfnmsub231ps',
+'vfnmsub231sd',
 'vfnmsub231ss',
 'xacquire',
 'xrelease',
@@ -1123,5 +1125,283 @@
 'rdrand',
 'rdseed',
 'xgetbv',
-'prefetchwt1'
+'prefetchwt1',
+'kaddb',
+'kaddd',
+'kaddq',
+'kaddw',
+'kandb',
+'kandd',
+'kandnb',
+'kandnd',
+'kandnq',
+'kandnw',
+'kandq',
+'kandw',
+'kmovb',
+'kmovd',
+'kmovq',
+'kmovw',
+'knotb',
+'knotd',
+'knotq',
+'knotw',
+'korb',
+'kord',
+'korq',
+'kortestb',
+'kortestd',
+'kortestq',
+'kortestw',
+'korw',
+'kshiftlb',
+'kshiftld',
+'kshiftlq',
+'kshiftlw',
+'kshiftrb',
+'kshiftrd',
+'kshiftrq',
+'kshiftrw',
+'ktestb',
+'ktestd',
+'ktestq',
+'ktestw',
+'kunpckbw',
+'kunpckdq',
+'kunpckwd',
+'kxnorb',
+'kxnord',
+'kxnorq',
+'kxnorw',
+'kxorb',
+'kxord',
+'kxorq',
+'kxorw',
+'valignd',
+'valignq',
+'vblendmpd',
+'vblendmps',
+'vbroadcastf32x2',
+'vbroadcastf32x4',
+'vbroadcastf32x8',
+'vbroadcastf64x2',
+'vbroadcastf64x4',
+'vbroadcasti32x2',
+'vbroadcasti32x4',
+'vbroadcasti32x8',
+'vbroadcasti64x2',
+'vbroadcasti64x4',
+'vcompresspd',
+'vcompressps',
+'vcvtpd2qq',
+'vcvtpd2udq',
+'vcvtpd2uqq',
+'vcvtps2qq',
+'vcvtps2udq',
+'vcvtps2uqq',
+'vcvtqq2pd',
+'vcvtqq2ps',
+'vcvtsd2usi',
+'vcvtss2usi',
+'vcvttpd2qq',
+'vcvttpd2udq',
+'vcvttpd2uqq',
+'vcvttps2qq',
+'vcvttps2udq',
+'vcvttps2uqq',
+'vcvttsd2usi',
+'vcvttss2usi',
+'vcvtudq2pd',
+'vcvtudq2ps',
+'vcvtuqq2pd',
+'vcvtuqq2ps',
+'vcvtusi2sd',
+'vcvtusi2ss',
+'vdbpsadbw',
+'vexp2pd',
+'vexp2ps',
+'vexpandpd',
+'vexpandps',
+'vextractf32x4',
+'vextractf32x8',
+'vextractf64x2',
+'vextractf64x4',
+'vextracti32x4',
+'vextracti32x8',
+'vextracti64x2',
+'vextracti64x4',
+'vfixupimmpd',
+'vfixupimmps',
+'vfixupimmsd',
+'vfixupimmss',
+'vfpclasspd',
+'vfpclassps',
+'vfpclasssd',
+'vfpclassss',
+'vgetexppd',
+'vgetexpps',
+'vgetexpsd',
+'vgetexpss',
+'vgetmantpd',
+'vgetmantps',
+'vgetmantsd',
+'vgetmantss',
+'vinsertf32x4',
+'vinsertf32x8',
+'vinsertf64x2',
+'vinsertf64x4',
+'vinserti32x4',
+'vinserti32x8',
+'vinserti64x2',
+'vinserti64x4',
+'vmovdqa32',
+'vmovdqa64',
+'vmovdqu16',
+'vmovdqu32',
+'vmovdqu64',
+'vmovdqu8',
+'vpabsq',
+'vpandd',
+'vpandnd',
+'vpandnq',
+'vpandq',
+'vpblendmb',
+'vpblendmd',
+'vpblendmq',
+'vpblendmw',
+'vpcmpb',
+'vpcmpd',
+'vpcmpq',
+'vpcmpub',
+'vpcmpud',
+'vpcmpuq',
+'vpcmpuw',
+'vpcmpw',
+'vpcompressd',
+'vpcompressq',
+'vpconflictd',
+'vpconflictq',
+'vpermb',
+'vpermi2b',
+'vpermi2d',
+'vpermi2pd',
+'vpermi2ps',
+'vpermi2q',
+'vpermi2w',
+'vpermt2b',
+'vpermt2d',
+'vpermt2pd',
+'vpermt2ps',
+'vpermt2q',
+'vpermt2w',
+'vpermw',
+'vpexpandd',
+'vpexpandq',
+'vplzcntd',
+'vplzcntq',
+'vpmadd52huq',
+'vpmadd52luq',
+'vpmaxsq',
+'vpmaxuq',
+'vpminsq',
+'vpminuq',
+'vpmovb2m',
+'vpmovd2m',
+'vpmovdb',
+'vpmovdw',
+'vpmovm2b',
+'vpmovm2d',
+'vpmovm2q',
+'vpmovm2w',
+'vpmovq2m',
+'vpmovqb',
+'vpmovqd',
+'vpmovqw',
+'vpmovsdb',
+'vpmovsdw',
+'vpmovsqb',
+'vpmovsqd',
+'vpmovsqw',
+'vpmovswb',
+'vpmovusdb',
+'vpmovusdw',
+'vpmovusqb',
+'vpmovusqd',
+'vpmovusqw',
+'vpmovuswb',
+'vpmovw2m',
+'vpmovwb',
+'vpmullq',
+'vpmultishiftqb',
+'vpord',
+'vporq',
+'vprold',
+'vprolq',
+'vprolvd',
+'vprolvq',
+'vprord',
+'vprorq',
+'vprorvd',
+'vprorvq',
+'vpscatterdd',
+'vpscatterdq',
+'vpscatterqd',
+'vpscatterqq',
+'vpsllvw',
+'vpsraq',
+'vpsravq',
+'vpsravw',
+'vpsrlvw',
+'vpternlogd',
+'vpternlogq',
+'vptestmb',
+'vptestmd',
+'vptestmq',
+'vptestmw',
+'vptestnmb',
+'vptestnmd',
+'vptestnmq',
+'vptestnmw',
+'vpxord',
+'vpxorq',
+'vrangepd',
+'vrangeps',
+'vrangesd',
+'vrangess',
+'vrcp14pd',
+'vrcp14ps',
+'vrcp14sd',
+'vrcp14ss',
+'vrcp28pd',
+'vrcp28ps',
+'vrcp28sd',
+'vrcp28ss',
+'vreducepd',
+'vreduceps',
+'vreducesd',
+'vreducess',
+'vrndscalepd',
+'vrndscaleps',
+'vrndscalesd',
+'vrndscaless',
+'vrsqrt14pd',
+'vrsqrt14ps',
+'vrsqrt14sd',
+'vrsqrt14ss',
+'vrsqrt28pd',
+'vrsqrt28ps',
+'vrsqrt28sd',
+'vrsqrt28ss',
+'vscalefpd',
+'vscalefps',
+'vscalefsd',
+'vscalefss',
+'vscatterdpd',
+'vscatterdps',
+'vscatterqpd',
+'vscatterqps',
+'vshuff32x4',
+'vshuff64x2',
+'vshufi32x4',
+'vshufi64x2'
 );

+ 281 - 1
compiler/i386/i386atts.inc

@@ -787,6 +787,8 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -1123,5 +1125,283 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufINT
+attsufINT,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE
 );

+ 314 - 34
compiler/i386/i386int.inc

@@ -783,8 +783,10 @@
 'vcvtdq2ps',
 'vcvtpd2dq',
 'vcvtpd2ps',
+'vcvtph2ps',
 'vcvtps2dq',
 'vcvtps2pd',
+'vcvtps2ph',
 'vcvtsd2si',
 'vcvtsd2ss',
 'vcvtsi2sd',
@@ -1053,66 +1055,66 @@
 'vpgatherdq',
 'vpgatherqd',
 'vpgatherqq',
-'vfmadd132pd',
-'vfmadd213pd',
-'vfmadd231pd',
 'vfmaddpd',
+'vfmadd132pd',
 'vfmadd132ps',
-'vfmadd213ps',
-'vfmadd231ps',
 'vfmadd132sd',
-'vfmadd213sd',
-'vfmadd231sd',
 'vfmadd132ss',
+'vfmadd213pd',
+'vfmadd213ps',
+'vfmadd213sd',
 'vfmadd213ss',
+'vfmadd231pd',
+'vfmadd231ps',
+'vfmadd231sd',
 'vfmadd231ss',
 'vfmaddsub132pd',
-'vfmaddsub213pd',
-'vfmaddsub231pd',
 'vfmaddsub132ps',
+'vfmaddsub213pd',
 'vfmaddsub213ps',
+'vfmaddsub231pd',
 'vfmaddsub231ps',
-'vfmsubadd132pd',
-'vfmsubadd213pd',
-'vfmsubadd231pd',
-'vfmsubadd132ps',
-'vfmsubadd213ps',
-'vfmsubadd231ps',
 'vfmsub132pd',
-'vfmsub213pd',
-'vfmsub231pd',
 'vfmsub132ps',
-'vfmsub213ps',
-'vfmsub231ps',
 'vfmsub132sd',
-'vfmsub213sd',
-'vfmsub231sd',
 'vfmsub132ss',
+'vfmsub213pd',
+'vfmsub213ps',
+'vfmsub213sd',
 'vfmsub213ss',
+'vfmsub231pd',
+'vfmsub231ps',
+'vfmsub231sd',
 'vfmsub231ss',
+'vfmsubadd132pd',
+'vfmsubadd132ps',
+'vfmsubadd213pd',
+'vfmsubadd213ps',
+'vfmsubadd231pd',
+'vfmsubadd231ps',
 'vfnmadd132pd',
-'vfnmadd213pd',
-'vfnmadd231pd',
 'vfnmadd132ps',
-'vfnmadd213ps',
-'vfnmadd231ps',
 'vfnmadd132sd',
-'vfnmadd213sd',
-'vfnmadd231sd',
 'vfnmadd132ss',
+'vfnmadd213pd',
+'vfnmadd213ps',
+'vfnmadd213sd',
 'vfnmadd213ss',
+'vfnmadd231pd',
+'vfnmadd231ps',
+'vfnmadd231sd',
 'vfnmadd231ss',
 'vfnmsub132pd',
-'vfnmsub213pd',
-'vfnmsub231pd',
 'vfnmsub132ps',
-'vfnmsub213ps',
-'vfnmsub231ps',
 'vfnmsub132sd',
-'vfnmsub213sd',
-'vfnmsub231sd',
 'vfnmsub132ss',
+'vfnmsub213pd',
+'vfnmsub213ps',
+'vfnmsub213sd',
 'vfnmsub213ss',
+'vfnmsub231pd',
+'vfnmsub231ps',
+'vfnmsub231sd',
 'vfnmsub231ss',
 'xacquire',
 'xrelease',
@@ -1123,5 +1125,283 @@
 'rdrand',
 'rdseed',
 'xgetbv',
-'prefetchwt1'
+'prefetchwt1',
+'kaddb',
+'kaddd',
+'kaddq',
+'kaddw',
+'kandb',
+'kandd',
+'kandnb',
+'kandnd',
+'kandnq',
+'kandnw',
+'kandq',
+'kandw',
+'kmovb',
+'kmovd',
+'kmovq',
+'kmovw',
+'knotb',
+'knotd',
+'knotq',
+'knotw',
+'korb',
+'kord',
+'korq',
+'kortestb',
+'kortestd',
+'kortestq',
+'kortestw',
+'korw',
+'kshiftlb',
+'kshiftld',
+'kshiftlq',
+'kshiftlw',
+'kshiftrb',
+'kshiftrd',
+'kshiftrq',
+'kshiftrw',
+'ktestb',
+'ktestd',
+'ktestq',
+'ktestw',
+'kunpckbw',
+'kunpckdq',
+'kunpckwd',
+'kxnorb',
+'kxnord',
+'kxnorq',
+'kxnorw',
+'kxorb',
+'kxord',
+'kxorq',
+'kxorw',
+'valignd',
+'valignq',
+'vblendmpd',
+'vblendmps',
+'vbroadcastf32x2',
+'vbroadcastf32x4',
+'vbroadcastf32x8',
+'vbroadcastf64x2',
+'vbroadcastf64x4',
+'vbroadcasti32x2',
+'vbroadcasti32x4',
+'vbroadcasti32x8',
+'vbroadcasti64x2',
+'vbroadcasti64x4',
+'vcompresspd',
+'vcompressps',
+'vcvtpd2qq',
+'vcvtpd2udq',
+'vcvtpd2uqq',
+'vcvtps2qq',
+'vcvtps2udq',
+'vcvtps2uqq',
+'vcvtqq2pd',
+'vcvtqq2ps',
+'vcvtsd2usi',
+'vcvtss2usi',
+'vcvttpd2qq',
+'vcvttpd2udq',
+'vcvttpd2uqq',
+'vcvttps2qq',
+'vcvttps2udq',
+'vcvttps2uqq',
+'vcvttsd2usi',
+'vcvttss2usi',
+'vcvtudq2pd',
+'vcvtudq2ps',
+'vcvtuqq2pd',
+'vcvtuqq2ps',
+'vcvtusi2sd',
+'vcvtusi2ss',
+'vdbpsadbw',
+'vexp2pd',
+'vexp2ps',
+'vexpandpd',
+'vexpandps',
+'vextractf32x4',
+'vextractf32x8',
+'vextractf64x2',
+'vextractf64x4',
+'vextracti32x4',
+'vextracti32x8',
+'vextracti64x2',
+'vextracti64x4',
+'vfixupimmpd',
+'vfixupimmps',
+'vfixupimmsd',
+'vfixupimmss',
+'vfpclasspd',
+'vfpclassps',
+'vfpclasssd',
+'vfpclassss',
+'vgetexppd',
+'vgetexpps',
+'vgetexpsd',
+'vgetexpss',
+'vgetmantpd',
+'vgetmantps',
+'vgetmantsd',
+'vgetmantss',
+'vinsertf32x4',
+'vinsertf32x8',
+'vinsertf64x2',
+'vinsertf64x4',
+'vinserti32x4',
+'vinserti32x8',
+'vinserti64x2',
+'vinserti64x4',
+'vmovdqa32',
+'vmovdqa64',
+'vmovdqu16',
+'vmovdqu32',
+'vmovdqu64',
+'vmovdqu8',
+'vpabsq',
+'vpandd',
+'vpandnd',
+'vpandnq',
+'vpandq',
+'vpblendmb',
+'vpblendmd',
+'vpblendmq',
+'vpblendmw',
+'vpcmpb',
+'vpcmpd',
+'vpcmpq',
+'vpcmpub',
+'vpcmpud',
+'vpcmpuq',
+'vpcmpuw',
+'vpcmpw',
+'vpcompressd',
+'vpcompressq',
+'vpconflictd',
+'vpconflictq',
+'vpermb',
+'vpermi2b',
+'vpermi2d',
+'vpermi2pd',
+'vpermi2ps',
+'vpermi2q',
+'vpermi2w',
+'vpermt2b',
+'vpermt2d',
+'vpermt2pd',
+'vpermt2ps',
+'vpermt2q',
+'vpermt2w',
+'vpermw',
+'vpexpandd',
+'vpexpandq',
+'vplzcntd',
+'vplzcntq',
+'vpmadd52huq',
+'vpmadd52luq',
+'vpmaxsq',
+'vpmaxuq',
+'vpminsq',
+'vpminuq',
+'vpmovb2m',
+'vpmovd2m',
+'vpmovdb',
+'vpmovdw',
+'vpmovm2b',
+'vpmovm2d',
+'vpmovm2q',
+'vpmovm2w',
+'vpmovq2m',
+'vpmovqb',
+'vpmovqd',
+'vpmovqw',
+'vpmovsdb',
+'vpmovsdw',
+'vpmovsqb',
+'vpmovsqd',
+'vpmovsqw',
+'vpmovswb',
+'vpmovusdb',
+'vpmovusdw',
+'vpmovusqb',
+'vpmovusqd',
+'vpmovusqw',
+'vpmovuswb',
+'vpmovw2m',
+'vpmovwb',
+'vpmullq',
+'vpmultishiftqb',
+'vpord',
+'vporq',
+'vprold',
+'vprolq',
+'vprolvd',
+'vprolvq',
+'vprord',
+'vprorq',
+'vprorvd',
+'vprorvq',
+'vpscatterdd',
+'vpscatterdq',
+'vpscatterqd',
+'vpscatterqq',
+'vpsllvw',
+'vpsraq',
+'vpsravq',
+'vpsravw',
+'vpsrlvw',
+'vpternlogd',
+'vpternlogq',
+'vptestmb',
+'vptestmd',
+'vptestmq',
+'vptestmw',
+'vptestnmb',
+'vptestnmd',
+'vptestnmq',
+'vptestnmw',
+'vpxord',
+'vpxorq',
+'vrangepd',
+'vrangeps',
+'vrangesd',
+'vrangess',
+'vrcp14pd',
+'vrcp14ps',
+'vrcp14sd',
+'vrcp14ss',
+'vrcp28pd',
+'vrcp28ps',
+'vrcp28sd',
+'vrcp28ss',
+'vreducepd',
+'vreduceps',
+'vreducesd',
+'vreducess',
+'vrndscalepd',
+'vrndscaleps',
+'vrndscalesd',
+'vrndscaless',
+'vrsqrt14pd',
+'vrsqrt14ps',
+'vrsqrt14sd',
+'vrsqrt14ss',
+'vrsqrt28pd',
+'vrsqrt28ps',
+'vrsqrt28sd',
+'vrsqrt28ss',
+'vscalefpd',
+'vscalefps',
+'vscalefsd',
+'vscalefss',
+'vscatterdpd',
+'vscatterdps',
+'vscatterqpd',
+'vscatterqps',
+'vshuff32x4',
+'vshuff64x2',
+'vshufi32x4',
+'vshufi64x2'
 );

+ 1 - 1
compiler/i386/i386nop.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from x86ins.dat }
-2129;
+4053;

+ 314 - 34
compiler/i386/i386op.inc

@@ -783,8 +783,10 @@ A_VCVTDQ2PD,
 A_VCVTDQ2PS,
 A_VCVTPD2DQ,
 A_VCVTPD2PS,
+A_VCVTPH2PS,
 A_VCVTPS2DQ,
 A_VCVTPS2PD,
+A_VCVTPS2PH,
 A_VCVTSD2SI,
 A_VCVTSD2SS,
 A_VCVTSI2SD,
@@ -1053,66 +1055,66 @@ A_VPGATHERDD,
 A_VPGATHERDQ,
 A_VPGATHERQD,
 A_VPGATHERQQ,
-A_VFMADD132PD,
-A_VFMADD213PD,
-A_VFMADD231PD,
 A_VFMADDPD,
+A_VFMADD132PD,
 A_VFMADD132PS,
-A_VFMADD213PS,
-A_VFMADD231PS,
 A_VFMADD132SD,
-A_VFMADD213SD,
-A_VFMADD231SD,
 A_VFMADD132SS,
+A_VFMADD213PD,
+A_VFMADD213PS,
+A_VFMADD213SD,
 A_VFMADD213SS,
+A_VFMADD231PD,
+A_VFMADD231PS,
+A_VFMADD231SD,
 A_VFMADD231SS,
 A_VFMADDSUB132PD,
-A_VFMADDSUB213PD,
-A_VFMADDSUB231PD,
 A_VFMADDSUB132PS,
+A_VFMADDSUB213PD,
 A_VFMADDSUB213PS,
+A_VFMADDSUB231PD,
 A_VFMADDSUB231PS,
-A_VFMSUBADD132PD,
-A_VFMSUBADD213PD,
-A_VFMSUBADD231PD,
-A_VFMSUBADD132PS,
-A_VFMSUBADD213PS,
-A_VFMSUBADD231PS,
 A_VFMSUB132PD,
-A_VFMSUB213PD,
-A_VFMSUB231PD,
 A_VFMSUB132PS,
-A_VFMSUB213PS,
-A_VFMSUB231PS,
 A_VFMSUB132SD,
-A_VFMSUB213SD,
-A_VFMSUB231SD,
 A_VFMSUB132SS,
+A_VFMSUB213PD,
+A_VFMSUB213PS,
+A_VFMSUB213SD,
 A_VFMSUB213SS,
+A_VFMSUB231PD,
+A_VFMSUB231PS,
+A_VFMSUB231SD,
 A_VFMSUB231SS,
+A_VFMSUBADD132PD,
+A_VFMSUBADD132PS,
+A_VFMSUBADD213PD,
+A_VFMSUBADD213PS,
+A_VFMSUBADD231PD,
+A_VFMSUBADD231PS,
 A_VFNMADD132PD,
-A_VFNMADD213PD,
-A_VFNMADD231PD,
 A_VFNMADD132PS,
-A_VFNMADD213PS,
-A_VFNMADD231PS,
 A_VFNMADD132SD,
-A_VFNMADD213SD,
-A_VFNMADD231SD,
 A_VFNMADD132SS,
+A_VFNMADD213PD,
+A_VFNMADD213PS,
+A_VFNMADD213SD,
 A_VFNMADD213SS,
+A_VFNMADD231PD,
+A_VFNMADD231PS,
+A_VFNMADD231SD,
 A_VFNMADD231SS,
 A_VFNMSUB132PD,
-A_VFNMSUB213PD,
-A_VFNMSUB231PD,
 A_VFNMSUB132PS,
-A_VFNMSUB213PS,
-A_VFNMSUB231PS,
 A_VFNMSUB132SD,
-A_VFNMSUB213SD,
-A_VFNMSUB231SD,
 A_VFNMSUB132SS,
+A_VFNMSUB213PD,
+A_VFNMSUB213PS,
+A_VFNMSUB213SD,
 A_VFNMSUB213SS,
+A_VFNMSUB231PD,
+A_VFNMSUB231PS,
+A_VFNMSUB231SD,
 A_VFNMSUB231SS,
 A_XACQUIRE,
 A_XRELEASE,
@@ -1123,5 +1125,283 @@ A_XTEST,
 A_RDRAND,
 A_RDSEED,
 A_XGETBV,
-A_PREFETCHWT1
+A_PREFETCHWT1,
+A_KADDB,
+A_KADDD,
+A_KADDQ,
+A_KADDW,
+A_KANDB,
+A_KANDD,
+A_KANDNB,
+A_KANDND,
+A_KANDNQ,
+A_KANDNW,
+A_KANDQ,
+A_KANDW,
+A_KMOVB,
+A_KMOVD,
+A_KMOVQ,
+A_KMOVW,
+A_KNOTB,
+A_KNOTD,
+A_KNOTQ,
+A_KNOTW,
+A_KORB,
+A_KORD,
+A_KORQ,
+A_KORTESTB,
+A_KORTESTD,
+A_KORTESTQ,
+A_KORTESTW,
+A_KORW,
+A_KSHIFTLB,
+A_KSHIFTLD,
+A_KSHIFTLQ,
+A_KSHIFTLW,
+A_KSHIFTRB,
+A_KSHIFTRD,
+A_KSHIFTRQ,
+A_KSHIFTRW,
+A_KTESTB,
+A_KTESTD,
+A_KTESTQ,
+A_KTESTW,
+A_KUNPCKBW,
+A_KUNPCKDQ,
+A_KUNPCKWD,
+A_KXNORB,
+A_KXNORD,
+A_KXNORQ,
+A_KXNORW,
+A_KXORB,
+A_KXORD,
+A_KXORQ,
+A_KXORW,
+A_VALIGND,
+A_VALIGNQ,
+A_VBLENDMPD,
+A_VBLENDMPS,
+A_VBROADCASTF32X2,
+A_VBROADCASTF32X4,
+A_VBROADCASTF32X8,
+A_VBROADCASTF64X2,
+A_VBROADCASTF64X4,
+A_VBROADCASTI32X2,
+A_VBROADCASTI32X4,
+A_VBROADCASTI32X8,
+A_VBROADCASTI64X2,
+A_VBROADCASTI64X4,
+A_VCOMPRESSPD,
+A_VCOMPRESSPS,
+A_VCVTPD2QQ,
+A_VCVTPD2UDQ,
+A_VCVTPD2UQQ,
+A_VCVTPS2QQ,
+A_VCVTPS2UDQ,
+A_VCVTPS2UQQ,
+A_VCVTQQ2PD,
+A_VCVTQQ2PS,
+A_VCVTSD2USI,
+A_VCVTSS2USI,
+A_VCVTTPD2QQ,
+A_VCVTTPD2UDQ,
+A_VCVTTPD2UQQ,
+A_VCVTTPS2QQ,
+A_VCVTTPS2UDQ,
+A_VCVTTPS2UQQ,
+A_VCVTTSD2USI,
+A_VCVTTSS2USI,
+A_VCVTUDQ2PD,
+A_VCVTUDQ2PS,
+A_VCVTUQQ2PD,
+A_VCVTUQQ2PS,
+A_VCVTUSI2SD,
+A_VCVTUSI2SS,
+A_VDBPSADBW,
+A_VEXP2PD,
+A_VEXP2PS,
+A_VEXPANDPD,
+A_VEXPANDPS,
+A_VEXTRACTF32X4,
+A_VEXTRACTF32X8,
+A_VEXTRACTF64X2,
+A_VEXTRACTF64X4,
+A_VEXTRACTI32X4,
+A_VEXTRACTI32X8,
+A_VEXTRACTI64X2,
+A_VEXTRACTI64X4,
+A_VFIXUPIMMPD,
+A_VFIXUPIMMPS,
+A_VFIXUPIMMSD,
+A_VFIXUPIMMSS,
+A_VFPCLASSPD,
+A_VFPCLASSPS,
+A_VFPCLASSSD,
+A_VFPCLASSSS,
+A_VGETEXPPD,
+A_VGETEXPPS,
+A_VGETEXPSD,
+A_VGETEXPSS,
+A_VGETMANTPD,
+A_VGETMANTPS,
+A_VGETMANTSD,
+A_VGETMANTSS,
+A_VINSERTF32X4,
+A_VINSERTF32X8,
+A_VINSERTF64X2,
+A_VINSERTF64X4,
+A_VINSERTI32X4,
+A_VINSERTI32X8,
+A_VINSERTI64X2,
+A_VINSERTI64X4,
+A_VMOVDQA32,
+A_VMOVDQA64,
+A_VMOVDQU16,
+A_VMOVDQU32,
+A_VMOVDQU64,
+A_VMOVDQU8,
+A_VPABSQ,
+A_VPANDD,
+A_VPANDND,
+A_VPANDNQ,
+A_VPANDQ,
+A_VPBLENDMB,
+A_VPBLENDMD,
+A_VPBLENDMQ,
+A_VPBLENDMW,
+A_VPCMPB,
+A_VPCMPD,
+A_VPCMPQ,
+A_VPCMPUB,
+A_VPCMPUD,
+A_VPCMPUQ,
+A_VPCMPUW,
+A_VPCMPW,
+A_VPCOMPRESSD,
+A_VPCOMPRESSQ,
+A_VPCONFLICTD,
+A_VPCONFLICTQ,
+A_VPERMB,
+A_VPERMI2B,
+A_VPERMI2D,
+A_VPERMI2PD,
+A_VPERMI2PS,
+A_VPERMI2Q,
+A_VPERMI2W,
+A_VPERMT2B,
+A_VPERMT2D,
+A_VPERMT2PD,
+A_VPERMT2PS,
+A_VPERMT2Q,
+A_VPERMT2W,
+A_VPERMW,
+A_VPEXPANDD,
+A_VPEXPANDQ,
+A_VPLZCNTD,
+A_VPLZCNTQ,
+A_VPMADD52HUQ,
+A_VPMADD52LUQ,
+A_VPMAXSQ,
+A_VPMAXUQ,
+A_VPMINSQ,
+A_VPMINUQ,
+A_VPMOVB2M,
+A_VPMOVD2M,
+A_VPMOVDB,
+A_VPMOVDW,
+A_VPMOVM2B,
+A_VPMOVM2D,
+A_VPMOVM2Q,
+A_VPMOVM2W,
+A_VPMOVQ2M,
+A_VPMOVQB,
+A_VPMOVQD,
+A_VPMOVQW,
+A_VPMOVSDB,
+A_VPMOVSDW,
+A_VPMOVSQB,
+A_VPMOVSQD,
+A_VPMOVSQW,
+A_VPMOVSWB,
+A_VPMOVUSDB,
+A_VPMOVUSDW,
+A_VPMOVUSQB,
+A_VPMOVUSQD,
+A_VPMOVUSQW,
+A_VPMOVUSWB,
+A_VPMOVW2M,
+A_VPMOVWB,
+A_VPMULLQ,
+A_VPMULTISHIFTQB,
+A_VPORD,
+A_VPORQ,
+A_VPROLD,
+A_VPROLQ,
+A_VPROLVD,
+A_VPROLVQ,
+A_VPRORD,
+A_VPRORQ,
+A_VPRORVD,
+A_VPRORVQ,
+A_VPSCATTERDD,
+A_VPSCATTERDQ,
+A_VPSCATTERQD,
+A_VPSCATTERQQ,
+A_VPSLLVW,
+A_VPSRAQ,
+A_VPSRAVQ,
+A_VPSRAVW,
+A_VPSRLVW,
+A_VPTERNLOGD,
+A_VPTERNLOGQ,
+A_VPTESTMB,
+A_VPTESTMD,
+A_VPTESTMQ,
+A_VPTESTMW,
+A_VPTESTNMB,
+A_VPTESTNMD,
+A_VPTESTNMQ,
+A_VPTESTNMW,
+A_VPXORD,
+A_VPXORQ,
+A_VRANGEPD,
+A_VRANGEPS,
+A_VRANGESD,
+A_VRANGESS,
+A_VRCP14PD,
+A_VRCP14PS,
+A_VRCP14SD,
+A_VRCP14SS,
+A_VRCP28PD,
+A_VRCP28PS,
+A_VRCP28SD,
+A_VRCP28SS,
+A_VREDUCEPD,
+A_VREDUCEPS,
+A_VREDUCESD,
+A_VREDUCESS,
+A_VRNDSCALEPD,
+A_VRNDSCALEPS,
+A_VRNDSCALESD,
+A_VRNDSCALESS,
+A_VRSQRT14PD,
+A_VRSQRT14PS,
+A_VRSQRT14SD,
+A_VRSQRT14SS,
+A_VRSQRT28PD,
+A_VRSQRT28PS,
+A_VRSQRT28SD,
+A_VRSQRT28SS,
+A_VSCALEFPD,
+A_VSCALEFPS,
+A_VSCALEFSD,
+A_VSCALEFSS,
+A_VSCATTERDPD,
+A_VSCATTERDPS,
+A_VSCATTERQPD,
+A_VSCATTERQPS,
+A_VSHUFF32X4,
+A_VSHUFF64X2,
+A_VSHUFI32X4,
+A_VSHUFI64X2
 );

+ 281 - 1
compiler/i386/i386prop.inc

@@ -787,6 +787,8 @@
 (Ch: [Ch_Wop2, Ch_Rop1]),
 (Ch: [Ch_Wop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
@@ -876,7 +878,7 @@
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
-(Ch: [Ch_All]),
+(Ch: [Ch_All, Ch_None]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
@@ -1123,5 +1125,283 @@
 (Ch: [Ch_Wop1, Ch_WFlags]),
 (Ch: [Ch_Wop1, Ch_WFlags]),
 (Ch: [Ch_WEAX, Ch_WEDX, Ch_RECX]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
 (Ch: [Ch_All])
 );

+ 16639 - 3171
compiler/i386/i386tab.inc

@@ -8732,57 +8732,127 @@
   (
     opcode  : A_VADDPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VADDPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#88#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VADDPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VADDPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#88#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VADDSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VADDSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#88#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#88#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VADDSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VADDSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#88#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#88#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
@@ -8817,29 +8887,29 @@
     opcode  : A_VAESDEC;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#222#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#222#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESDECLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#223#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#223#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESENC;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#220#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#220#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESENCLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#221#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#221#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESIMC;
@@ -8858,58 +8928,170 @@
   (
     opcode  : A_VANDNPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDNPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VANDNPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDNPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VANDPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VANDPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VBLENDPD;
@@ -8977,45 +9159,73 @@
   (
     opcode  : A_VBROADCASTSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#25#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#25#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VBROADCASTSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#25#72;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#25#72;
     flags   : [if_avx2]
   ),
   (
-    opcode  : A_VBROADCASTSS;
+    opcode  : A_VBROADCASTSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#24#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#25#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VBROADCASTSD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#25#72;
+    flags   : [if_avx512]
   ),
   (
     opcode  : A_VBROADCASTSS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#24#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#24#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VBROADCASTSS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#24#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#24#72;
     flags   : [if_avx2]
   ),
   (
     opcode  : A_VBROADCASTSS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#24#72;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#24#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VBROADCASTSS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#24#72;
     flags   : [if_avx2]
   ),
+  (
+    opcode  : A_VBROADCASTSS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#233#241#249#1#24#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VBROADCASTSS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#24#72;
+    flags   : [if_avx512]
+  ),
   (
     opcode  : A_VCMPEQPS;
     ops     : 3;
@@ -9912,6 +10122,55 @@
     code    : #241#242#244#248#1#194#61#80#1#31;
     flags   : [if_avx,if_sandybridge]
   ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
   (
     opcode  : A_VCMPPD;
     ops     : 4;
@@ -9926,6 +10185,55 @@
     code    : #241#242#244#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
   (
     opcode  : A_VCMPPS;
     ops     : 4;
@@ -9943,28 +10251,56 @@
   (
     opcode  : A_VCMPSD;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    optypes : (ot_kreg_m,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #220#232#234#248#1#194#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCMPSD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #220#232#234#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCMPSD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
     code    : #220#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCMPSD;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
     code    : #220#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCMPSS;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    optypes : (ot_kreg_m,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #219#232#248#1#194#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCMPSS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #219#232#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCMPSS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
     code    : #219#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCMPSS;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
     code    : #219#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
@@ -9972,4935 +10308,18067 @@
     opcode  : A_VCOMISD;
     ops     : 2;
     optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#248#1#47#72;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#234#241#242#248#1#47#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VCOMISD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#47#72;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#47#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCOMISS;
     ops     : 2;
     optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #242#248#1#47#72;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#242#248#1#47#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VCOMISS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#47#72;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#242#248#1#47#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #219#242#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #219#232#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#230#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#242#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#248#1#230#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #219#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
-    opcode  : A_VCVTDQ2PS;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#91#72;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTDQ2PS;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#244#248#1#230#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
   ),
   (
-    opcode  : A_VCVTPD2DQ;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #220#242#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #219#232#233#248#1#230#72;
+    flags   : [if_avx512,if_thv]
   ),
   (
-    opcode  : A_VCVTPD2DQ;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #220#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #219#232#233#248#1#230#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTPD2PS;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#233#248#1#230#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
   ),
   (
-    opcode  : A_VCVTPD2PS;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#242#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2DQ;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2DQ;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#242#244#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2PD;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #242#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2PD;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2PD;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#244#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#248#1#91#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTPD2DQ;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTPD2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#243#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #220#232#234#242#244#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTPD2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#243#248#1#45#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTSD2SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#90#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#248#1#230#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#90#61#80;
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#230#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#234#242#244#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTSI2SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #220#242#248#1#42#61#80;
-    flags   : [if_avx,if_sandybridge,if_sd]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTSI2SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #219#242#248#1#42#61#80;
-    flags   : [if_avx,if_sandybridge,if_sd]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#90#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#230#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTSS2SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#90#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPD2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#45#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#243#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#90#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#243#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#90#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
   ),
   (
-    opcode  : A_VCVTTPD2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#230#72;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTTPD2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#90#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTTPS2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#90#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
   ),
   (
-    opcode  : A_VCVTTPS2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#90#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#19#72;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#19#72;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#243#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#19#72;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#243#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#19#72;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#19#72;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#19#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPS2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#243#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPS2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#243#248#1#44#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#248#1#91#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VDIVPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#242#244#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VDIVPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#94#61#80;
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#242#244#248#1#91#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VDIVPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#241#248#1#91#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VDIVSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#242#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
-    opcode  : A_VDPPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#65#61#80#23;
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VDPPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#64#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#90#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
   ),
   (
-    opcode  : A_VDPPS;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#64#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#242#244#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
-    opcode  : A_VEXTRACTF128;
-    ops     : 3;
-    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#25#65#22;
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VEXTRACTPS;
-    ops     : 3;
-    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#23#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#90#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
   ),
   (
-    opcode  : A_VHADDPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#248#1#90#72;
+    flags   : [if_avx512,if_thv]
   ),
   (
-    opcode  : A_VHADDPD;
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#248#1#90#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#90#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#250#1#29#65#22;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VHADDPS;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #220#242#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem256_m,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#29#65#22;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VHADDPS;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #220#242#244#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#29#65#22;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VHSUBPD;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#29#65#22;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VHSUBPD;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#250#1#29#65#22;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VHSUBPS;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #220#242#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VHSUBPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #220#242#244#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VINSERTF128;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#24#61#80#23;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VINSERTPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#33#61#80#23;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VINSERTPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#33#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#29#65#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VLDDQU;
+    opcode  : A_VCVTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #220#242#248#1#240#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#242#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VLDDQU;
+    opcode  : A_VCVTSD2SI;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
-    code    : #220#242#244#248#1#240#72;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#242#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VLDMXCSR;
-    ops     : 1;
-    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
-    code    : #242#248#1#174#130;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTSD2SI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VMASKMOVDQU;
+    opcode  : A_VCVTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#247#72;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSD2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#47#61#66;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#90#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSD2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#47#61#66;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#90#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSI2SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#244#249#1#45#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_reg32,ot_none);
+    code    : #220#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSI2SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#249#1#45#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #220#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSI2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#46#61#66;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_reg32,ot_none);
+    code    : #219#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSI2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#46#61#66;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSS2SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#244#249#1#44#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#90#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSS2SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#249#1#44#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #219#232#242#248#1#90#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMAXPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#242#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMAXPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#95#61#80;
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#242#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMAXPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMAXPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#95#61#80;
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMAXSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMAXSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMAXSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_avx512]
   ),
   (
-    opcode  : A_VMAXSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#230#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
   ),
   (
-    opcode  : A_VMINPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#230#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
   ),
   (
-    opcode  : A_VMINPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#93#61#80;
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMINPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMINPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#230#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
   ),
   (
-    opcode  : A_VMINSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#230#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMINSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPS2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#242#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMINSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPS2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMINSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#41#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #219#232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#41#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #219#232#233#248#1#91#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#242#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#41#65;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#242#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#41#65;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVD;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #241#242#248#1#110#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#242#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMOVD;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#126#65;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#242#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDDUP;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #220#242#244#248#1#18#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMOVDDUP;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#18#72;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDDUP;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#18#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#127#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#111#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#127#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#111#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#111#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#111#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#94#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#127#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #219#242#244#248#1#127#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVHLPS;
+    opcode  : A_VDIVPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #242#248#1#18#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVHPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#23#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVHPD;
+    opcode  : A_VDIVPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #241#242#248#1#22#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVHPS;
+    opcode  : A_VDIVPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #242#248#1#22#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVHPS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#23#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#94#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVLHPS;
+    opcode  : A_VDIVSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #242#248#1#22#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMOVLPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#19#65;
+    opcode  : A_VDIVSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#94#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVLPD;
+    opcode  : A_VDIVSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #241#242#248#1#18#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMOVLPS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#19#65;
+    opcode  : A_VDIVSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#94#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVLPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #242#248#1#18#61#80;
+    opcode  : A_VDPPD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#65#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
-    ops     : 2;
-    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#80#72;
+    opcode  : A_VDPPS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#64#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
-    ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#80#72;
+    opcode  : A_VDPPS;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#64#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
-    ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#80#72;
+    opcode  : A_VEXTRACTF128;
+    ops     : 3;
+    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#25#65#22;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
-    ops     : 2;
-    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#80#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VEXTRACTPS;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#23#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#80#72;
+    opcode  : A_VEXTRACTPS;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#23#65#22;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#80#72;
+    opcode  : A_VEXTRACTPS;
+    ops     : 3;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#23#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VHADDPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#80#72;
+    opcode  : A_VHADDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#80#72;
+    opcode  : A_VHADDPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #220#242#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTDQ;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#231#65;
+    opcode  : A_VHADDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #220#242#244#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTDQ;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#231#65;
+    opcode  : A_VHSUBPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#125#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTDQA;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #241#242#249#1#42#72;
+    opcode  : A_VHSUBPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#125#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTDQA;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
-    code    : #241#242#244#249#1#42#72;
-    flags   : [if_avx2]
+    opcode  : A_VHSUBPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #220#242#248#1#125#61#80;
+    flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#43#65;
+    opcode  : A_VHSUBPS;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #220#242#244#248#1#125#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#43#65;
+    opcode  : A_VINSERTF128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#24#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTPS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#43#65;
+    opcode  : A_VINSERTPS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#33#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VINSERTPS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#33#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVNTPS;
+    opcode  : A_VLDDQU;
     ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#43#65;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #220#242#248#1#240#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVQ;
+    opcode  : A_VLDDQU;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#219#248#1#126#72;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #220#242#244#248#1#240#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #242#219#248#1#126#72;
+    opcode  : A_VLDMXCSR;
+    ops     : 1;
+    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+    code    : #242#248#1#174#130;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVQ;
+    opcode  : A_VMASKMOVDQU;
     ops     : 2;
     optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#241#248#1#214#65;
+    code    : #241#242#248#1#247#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVQ;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#241#248#1#214#65;
+    opcode  : A_VMASKMOVPD;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#47#61#66;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSD;
+    opcode  : A_VMASKMOVPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#16#61#80;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#47#61#66;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#16#72;
+    opcode  : A_VMASKMOVPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#244#249#1#45#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSD;
+    opcode  : A_VMASKMOVPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#17#61#66;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#249#1#45#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VMOVSHDUP;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#22#72;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VMOVSHDUP;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#22#72;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VMOVSLDUP;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#18#72;
+    opcode  : A_VMASKMOVPS;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#46#61#66;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSLDUP;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#18#72;
+    opcode  : A_VMASKMOVPS;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#46#61#66;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSS;
+    opcode  : A_VMASKMOVPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#16#61#80;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#244#249#1#44#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#248#1#16#72;
+    opcode  : A_VMASKMOVPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#249#1#44#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVSS;
+    opcode  : A_VMAXPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#17#61#66;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVSS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits32,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPD;
-    ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#234#241#248#1#95#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVUPD;
-    ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPS;
-    ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPS;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPS;
-    ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMPSADBW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#66#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMPSADBW;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#66#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULPD;
+    opcode  : A_VMAXPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULPD;
+    opcode  : A_VMAXPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#248#1#95#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMULPS;
+    opcode  : A_VMAXSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMULPS;
+    opcode  : A_VMAXSD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#89#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #220#232#234#242#248#1#95#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMULSD;
+    opcode  : A_VMAXSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMULSD;
+    opcode  : A_VMAXSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#89#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #219#232#242#248#1#95#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMULSS;
+    opcode  : A_VMINPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMULSS;
+    opcode  : A_VMINPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VORPD;
+    opcode  : A_VMINPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#86#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VORPS;
+    opcode  : A_VMINPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#86#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VORPS;
+    opcode  : A_VMINPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#86#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPABSB;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#28#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPABSB;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#28#72;
-    flags   : [if_avx2]
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#234#241#248#1#93#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPABSD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#30#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VPABSD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#30#72;
-    flags   : [if_avx2]
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPABSW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#29#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VPABSW;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#29#72;
-    flags   : [if_avx2]
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKSSDW;
+    opcode  : A_VMINPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#107#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKSSDW;
+    opcode  : A_VMINPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#107#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKSSWB;
+    opcode  : A_VMINPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#99#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#248#1#93#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPACKSSWB;
+    opcode  : A_VMINSD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#99#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VPACKUSDW;
+    opcode  : A_VMINSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#43#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #220#232#234#242#248#1#93#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VPACKUSDW;
+    opcode  : A_VMINSS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#43#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VPACKUSWB;
+    opcode  : A_VMINSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#103#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #219#232#242#248#1#93#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VPACKUSWB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#103#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
   ),
   (
-    opcode  : A_VPADDB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#252#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
   ),
   (
-    opcode  : A_VPADDB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#252#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#41#65;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPADDD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#254#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
   ),
   (
-    opcode  : A_VPADDD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#254#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VPADDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#212#61#80;
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#40#72;
     flags   : [if_avx,if_sandybridge]
   ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#40#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#40#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#41#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#41#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#242#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#40#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#40#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#41#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#40#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVD;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#248#1#126#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#248#1#110#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tmddup]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#18#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#234#242#244#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tmddup]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#18#72;
+    flags   : [if_avx512,if_tmddup]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #219#242#244#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #219#242#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+    code    : #219#242#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+    code    : #219#242#244#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVHLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#242#248#1#18#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVHPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#23#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVHPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#248#1#22#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVHPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#23#65;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#242#248#1#22#61#80;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVLHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#242#248#1#22#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVLPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#19#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVLPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#248#1#18#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVLPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#19#65;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#242#248#1#18#61#80;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+    code    : #242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+    code    : #242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+    code    : #242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+    code    : #242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVNTDQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#248#1#231#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#242#244#248#1#231#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits512,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#248#1#231#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQA;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#249#1#42#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQA;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#42#72;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQA;
+    ops     : 2;
+    optypes : (ot_zmmreg,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#42#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits512,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#43#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits512,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#43#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#214#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #219#232#234#242#248#1#126#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#242#248#1#126#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#214#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #220#232#234#242#248#1#17#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #220#232#234#242#248#1#16#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSHDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#242#248#1#22#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSHDUP;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#22#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSHDUP;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#248#1#22#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSLDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#242#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSLDUP;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSLDUP;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#248#1#18#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#232#242#248#1#17#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#232#242#248#1#16#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#17#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#17#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#16#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#17#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#242#244#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#17#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#248#1#16#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMPSADBW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#66#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMPSADBW;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#66#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#89#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#89#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMULSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMULSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMULSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMULSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#242#249#1#28#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#28#72;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#28#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#242#249#1#30#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#30#72;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#242#249#1#29#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#29#72;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#29#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#107#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#107#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSWB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#99#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKSSWB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#99#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKSSWB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#99#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#43#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#43#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSWB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#103#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKUSWB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#103#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKUSWB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#103#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#252#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#252#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#252#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#254#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#254#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#212#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#212#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VPADDQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#212#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#236#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#236#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#236#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#237#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#237#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#237#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#220#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#220#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#220#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#221#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#221#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#221#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#253#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#253#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#253#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPALIGNR;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#15#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPALIGNR;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#242#244#250#1#15#61#80#23;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPALIGNR;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#15#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAND;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#219#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPAND;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#219#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPANDN;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#223#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPANDN;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#223#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPAVGB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#224#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#224#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#224#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#227#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#227#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#227#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDVB;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+    code    : #241#242#250#1#76#61#80#247;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPBLENDVB;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
+    code    : #241#242#244#250#1#76#61#80#247;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBLENDW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#14#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPBLENDW;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#14#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCLMULQDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#68#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPCLMULQDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#68#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCLMULQDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#68#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#116#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#116#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#116#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#116#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#116#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#118#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#118#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#41#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#41#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#117#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#117#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPESTRI;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#97#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPESTRM;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#96#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#100#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#100#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#100#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#100#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#100#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#102#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#102#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#55#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#55#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#101#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#101#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#101#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#101#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#101#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPISTRI;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#99#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPISTRM;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#98#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPERM2F128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#6#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#249#1#13#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#250#1#5#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#249#1#13#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#244#250#1#5#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#12#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#4#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#12#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#250#1#4#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#20#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#20#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#20#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#20#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#20#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXTRD;
+    ops     : 3;
+    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#22#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRQ;
+    ops     : 3;
+    optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#250#1#22#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#197#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#197#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#197#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#2#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#2#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHADDSW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#3#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDSW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#3#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHADDW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#1#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#1#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHMINPOSUW;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#65#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#6#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#6#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHSUBSW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#7#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBSW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#7#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHSUBW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#5#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#5#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPINSRB;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#32#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPINSRB;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits8,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#32#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#34#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRQ;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#242#243#250#1#34#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits16,ot_immediate or ot_bits8);
+    code    : #232#241#242#248#1#196#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+    code    : #232#241#242#248#1#196#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMADDUBSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#4#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDUBSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#4#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDUBSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#4#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDWD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#245#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDWD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#245#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDWD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#245#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#60#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#60#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#60#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#61#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#61#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#238#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#238#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#238#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#222#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#222#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#222#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#63#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#63#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#62#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#62#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#62#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#56#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#56#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#56#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#57#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#57#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#234#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#234#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#234#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#218#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#218#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#218#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#59#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#59#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#58#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#58#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#58#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#215#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#215#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#215#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#215#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#33#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#33#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#33#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#33#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#33#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#33#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#249#1#34#72;
+    flags   : [if_avx,if_sandybridge,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#34#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#34#72;
+    flags   : [if_avx2,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#34#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#34#72;
+    flags   : [if_avx512,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#34#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#32#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#32#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#32#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#32#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#32#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#32#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#37#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#37#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#37#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#37#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#37#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#37#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#35#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#35#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#35#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#35#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#35#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#35#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#36#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#36#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#36#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#36#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#36#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#36#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#49#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#49#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#49#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#49#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#49#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#49#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#249#1#50#72;
+    flags   : [if_avx,if_sandybridge,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#50#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#50#72;
+    flags   : [if_avx2,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#50#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#50#72;
+    flags   : [if_avx512,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#50#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#48#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#48#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#48#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#48#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#48#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#48#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#53#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#53#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#53#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#53#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#53#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#53#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#51#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#51#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#51#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#51#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#51#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#51#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#52#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#52#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#52#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#52#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#52#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#52#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#249#1#40#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#249#1#40#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULHRSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#11#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHRSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#11#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHRSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#11#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHUW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#228#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHUW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#228#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHUW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#228#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#229#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#229#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#229#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#64#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#64#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#213#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#213#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#213#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#244#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#244#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOR;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#235#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPOR;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#235#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSADBW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#246#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSADBW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#246#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSADBW;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#246#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#0#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#0#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#0#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#112#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#112#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFHW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #219#232#242#248#1#112#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFHW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #219#232#242#244#248#1#112#72#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFHW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #219#232#233#248#1#112#72#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #220#232#242#248#1#112#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #220#232#242#244#248#1#112#72#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #220#232#233#248#1#112#72#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSIGNB;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#8#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSIGNB;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#8#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSIGND;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#10#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSIGND;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#10#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSIGNW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#9#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSIGNW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#9#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#114#60#142#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#242#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#114#60#142#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#242#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#242#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#115#60#143#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#115#60#143#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#243#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#248#1#115#60#142#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#243#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#244#248#1#115#60#142#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#234#241#248#1#243#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#241#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#113#60#142#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#241#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#113#60#142#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#241#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#114#60#140#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#226#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#114#60#140#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#226#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#113#60#140#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#225#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#113#60#140#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#225#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#225#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#114#60#138#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#210#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#210#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#114#60#138#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#210#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#115#60#139#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#115#60#139#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#115#60#139#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#115#60#139#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#115#60#139#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#211#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#248#1#115#60#138#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#244#248#1#115#60#138#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#211#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#234#241#248#1#211#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#113#60#138#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#209#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#113#60#138#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#209#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#209#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#248#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#248#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#248#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#250#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#250#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#251#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#251#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#232#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#232#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#232#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#233#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#233#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#233#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#216#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#216#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#216#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#217#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#217#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#217#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#249#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#249#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#249#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPTEST;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#249#1#23#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPTEST;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#23#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPUNPCKHBW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#104#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHBW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#104#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHBW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#104#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#106#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#106#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#109#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#109#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHWD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#105#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHWD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#105#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHWD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#105#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLBW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#96#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLBW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#96#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLBW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#96#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#98#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#98#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#108#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#108#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLWD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#97#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLWD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#97#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLWD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#97#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPXOR;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#239#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPXOR;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#239#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VRCPPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #242#248#1#83#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRCPPS;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #242#244#248#1#83#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRCPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#242#248#1#83#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRCPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#242#248#1#83#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#9#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#9#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#8#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#8#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#11#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#11#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#10#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#10#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #242#244#248#1#82#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #242#248#1#82#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#242#248#1#82#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#242#248#1#82#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#242#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#242#244#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#242#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#242#244#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#244#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#81#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#242#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#242#244#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#248#1#81#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VSQRTSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSQRTSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSTMXCSR;
+    ops     : 1;
+    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+    code    : #242#248#1#174#131;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#92#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VSUBSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSUBSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSUBSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSUBSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VTESTPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#15#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VTESTPD;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#249#1#15#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VTESTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#249#1#14#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VTESTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#14#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VUCOMISD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VUCOMISD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VUCOMISS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VUCOMISS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VZEROALL;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #242#244#248#1#119;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VZEROUPPER;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #242#248#1#119;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_ANDN;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #242#249#1#242#61#80;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BEXTR;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #242#249#1#247#62#72;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BLSI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #242#249#1#243#60#139;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BLSMSK;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #242#249#1#243#60#138;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BLSR;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #242#249#1#243#60#137;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_TZCNT;
+    ops     : 2;
+    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_rm_gpr,ot_none,ot_none);
+    code    : #208#219#2#15#188#72;
+    flags   : [if_bmi1,if_sm]
+  ),
+  (
+    opcode  : A_BZHI;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #242#249#1#245#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_MULX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #220#242#249#1#246#61#80;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_PDEP;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #220#242#249#1#245#61#80;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_PEXT;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #219#242#249#1#245#61#80;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_RORX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8,ot_none);
+    code    : #220#242#250#1#240#72#22;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_SARX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #219#242#249#1#247#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_SHLX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #241#242#249#1#247#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_SHRX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #220#242#249#1#247#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_ADCX;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #241#3#15#56#246#72;
+    flags   : [if_adx]
+  ),
+  (
+    opcode  : A_ADOX;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #219#3#15#56#246#72;
+    flags   : [if_adx]
+  ),
+  (
+    opcode  : A_VBROADCASTI128;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #241#242#244#249#1#90#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VEXTRACTI128;
+    ops     : 3;
+    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#57#65#22;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VINSERTI128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#56#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBLENDD;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#2#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBLENDD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#2#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #232#241#242#249#1#120#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#120#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg8,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#120#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#120#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg8,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #232#233#241#249#1#120#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg8,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#88#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#88#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#88#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#88#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#244#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#233#241#249#1#88#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#233#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#88#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#249#1#89#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#249#1#89#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#234#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#89#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#89#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#89#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#249#1#121#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#121#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#121#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#121#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#244#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#244#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#244#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#233#241#249#1#121#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#233#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#233#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#233#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPERM2I128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#70#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#54#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#244#250#1#1#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#244#250#1#1#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#1#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#1#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#1#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#22#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#244#250#1#0#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#0#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#0#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#0#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#244#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#243#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#243#244#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#70#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#70#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#234#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_xmem32,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
+    code    : #241#242#244#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_xmem64,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_ymem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
+    code    : #241#242#244#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADDPD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+    code    : #241#242#250#1#105#61#80#247;
+    flags   : [if_fma4]
+  ),
+  (
+    opcode  : A_VFMADDPD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_xmmrm);
+    code    : #241#242#250#243#1#105#61#88#246;
+    flags   : [if_fma4]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#152#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#152#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#153#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#153#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#153#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#153#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#168#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#168#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#169#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#169#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#169#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#169#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#184#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#184#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#185#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#185#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#185#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#185#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#150#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#150#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#166#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#166#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#182#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#182#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#154#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#154#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#155#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#155#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#155#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#155#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#170#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#170#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#171#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#171#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#171#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#171#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#186#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#186#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#187#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#187#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#187#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#187#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#151#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#151#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#167#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#167#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#183#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#183#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#156#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#156#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#157#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#157#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#157#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#157#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#172#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#172#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#173#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#173#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#173#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#173#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#188#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#188#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #241#242#243#249#1#189#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#189#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#189#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#189#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#158#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#158#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#159#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#159#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#159#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#159#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#174#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#174#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#175#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#175#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#175#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#175#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#190#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#190#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#191#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#191#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#191#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#191#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_XACQUIRE;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #1#242;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XRELEASE;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #1#243;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XBEGIN;
+    ops     : 1;
+    optypes : (ot_memory,ot_none,ot_none,ot_none);
+    code    : #208#2#199#248#52;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XABORT;
+    ops     : 1;
+    optypes : (ot_immediate,ot_none,ot_none,ot_none);
+    code    : #2#198#248#20;
+    flags   : [if_tsx,if_sb]
+  ),
+  (
+    opcode  : A_XEND;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #3#15#1#213;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XTEST;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #3#15#1#214;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_RDRAND;
+    ops     : 1;
+    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
+    code    : #208#2#15#199#134;
+    flags   : [if_rand]
+  ),
+  (
+    opcode  : A_RDSEED;
+    ops     : 1;
+    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
+    code    : #208#2#15#199#135;
+    flags   : [if_rand]
+  ),
+  (
+    opcode  : A_XGETBV;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #3#15#1#208;
+    flags   : [if_xsave]
+  ),
+  (
+    opcode  : A_PREFETCHWT1;
+    ops     : 1;
+    optypes : (ot_memory,ot_none,ot_none,ot_none);
+    code    : #2#15#13#130;
+    flags   : [if_prefetchwt1]
+  ),
+  (
+    opcode  : A_KADDB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KADDD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KADDQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KADDW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDNB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDND;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDNQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDNW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #241#242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg32,ot_none,ot_none);
+    code    : #241#242#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits8,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_reg32,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #241#242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg32,ot_none,ot_none);
+    code    : #220#242#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits32,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_reg32,ot_kreg,ot_none,ot_none);
+    code    : #220#242#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg64,ot_none,ot_none);
+    code    : #220#242#243#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_reg64,ot_kreg,ot_none,ot_none);
+    code    : #220#242#243#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg32,ot_none,ot_none);
+    code    : #242#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits16,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_reg32,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#50#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#51#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#51#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#50#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#48#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#49#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#49#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#48#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KUNPCKBW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#75#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KUNPCKDQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#75#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KUNPCKWD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#75#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#25#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#244#249#1#25#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#25#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#25#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X4;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#244#249#1#26#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#26#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X8;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#27#72;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VBROADCASTF64X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#26#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF64X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#26#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF64X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#27#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#249#1#89#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#244#249#1#89#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#89#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X4;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#244#249#1#90#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#90#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X8;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#91#72;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VBROADCASTI64X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#90#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI64X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#90#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI64X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#91#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VCOMPRESSPD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPD;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#138#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#138#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#138#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#244#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#248#1#121#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#244#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#123#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#123#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#123#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#123#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#123#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#123#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #232#233#241#248#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#244#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#121#72;
+    flags   : [if_avx512,if_bcst16,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#121#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#121#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#121#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #232#233#241#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#230#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#248#1#91#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#248#1#91#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#244#248#1#91#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#244#248#1#91#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#248#1#91#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#248#1#91#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#248#1#121#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#248#1#121#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#248#1#121#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#248#1#121#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#248#1#120#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#244#248#1#120#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#244#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#248#1#120#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#122#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#122#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#122#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#120#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#120#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#120#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#120#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#120#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#120#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#248#1#120#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#248#1#120#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#248#1#120#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#248#1#120#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #219#232#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#248#1#122#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#244#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#244#248#1#122#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #219#232#233#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#233#248#1#122#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #219#232#233#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #220#232#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #220#232#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #220#232#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #220#232#233#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #220#232#233#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #220#232#233#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #220#232#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#248#1#122#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUSI2SD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits64,ot_none);
+    code    : #220#232#234#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCVTUSI2SD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #220#232#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCVTUSI2SS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits64,ot_none);
+    code    : #219#232#234#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCVTUSI2SS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #219#232#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VDBPSADBW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#66#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VDBPSADBW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#66#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VDBPSADBW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#66#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VEXP2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#200#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXP2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#200#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#244#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#25#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#25#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X8;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#27#65#22;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X8;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#27#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#25#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#25#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X4;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#27#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X4;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#27#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#57#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#57#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X8;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#59#65#22;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X8;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#59#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#57#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#57#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X4;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#59#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X4;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#59#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#84#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#85#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#85#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#85#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#85#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst16,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSSD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#103#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFPCLASSSD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_memory or ot_bits64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#103#72#22;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VFPCLASSSS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#103#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFPCLASSSS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_memory or ot_bits32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#103#72#22;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#66#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#66#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETEXPSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#67#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETEXPSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#234#241#249#1#67#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETEXPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#67#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETEXPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#241#249#1#67#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#38#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#38#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#39#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETMANTSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#39#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#39#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETMANTSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#39#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VINSERTF32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTF32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTF32X8;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#26#61#80#23;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VINSERTF64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTF64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTF64X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#26#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTI32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTI32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTI32X8;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#58#61#80#23;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VINSERTI64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTI64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTI64X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#58#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #220#232#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #220#232#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #220#232#233#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #220#232#233#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPUB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPUB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPUW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPUW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCOMPRESSD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSD;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#139#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#139#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#139#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSQ;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSQ;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSQ;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#139#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#139#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#139#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPADDSB;
+    opcode  : A_VPERMB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#236#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPADDSB;
+    opcode  : A_VPERMB;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#236#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPADDSW;
+    opcode  : A_VPERMI2B;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#237#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPADDSW;
+    opcode  : A_VPERMI2B;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#237#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPADDUSB;
+    opcode  : A_VPERMI2B;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#220#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPADDUSB;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#220#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDUSW;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#221#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDUSW;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#221#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDW;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#253#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDW;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#253#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPALIGNR;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#15#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMI2D;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPALIGNR;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#15#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VPERMI2PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAND;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#219#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAND;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#219#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPANDN;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#223#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPANDN;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#223#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGB;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#224#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGB;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#224#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGW;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#227#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGW;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#227#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDVB;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
-    code    : #241#242#250#1#76#61#80#247;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMI2PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDVB;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
-    code    : #241#242#244#250#1#76#61#80#247;
-    flags   : [if_avx2]
+    opcode  : A_VPERMI2PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#14#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMI2PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDW;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#14#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VPERMI2Q;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCLMULQDQ;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#68#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMI2Q;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQB;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#116#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQB;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#116#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQD;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#118#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQD;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#118#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQQ;
+    opcode  : A_VPERMI2W;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#41#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPEQQ;
+    opcode  : A_VPERMI2W;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#41#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPEQW;
+    opcode  : A_VPERMI2W;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#117#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPEQW;
+    opcode  : A_VPERMT2B;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#117#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPESTRI;
+    opcode  : A_VPERMT2B;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#97#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPESTRM;
+    opcode  : A_VPERMT2B;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#96#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPGTB;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#100#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTB;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#100#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTD;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#102#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTD;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#102#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2D;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2D;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2Q;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2Q;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2Q;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2Q;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2Q;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2Q;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMT2W;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPERMT2W;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPERMT2W;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPERMW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPERMW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPERMW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#137#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#244#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPCMPGTQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#55#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VPCMPGTQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#55#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPCMPGTW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#101#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VPCMPGTW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#101#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPCMPISTRI;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#99#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VPCMPISTRM;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#98#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPERM2F128;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#6#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#13#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#5#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#5#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#13#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#12#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#4#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#4#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#12#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRB;
-    ops     : 3;
-    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#20#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRB;
-    ops     : 3;
-    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#20#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRB;
-    ops     : 3;
-    optypes : (ot_memory or ot_bits8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#20#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRD;
-    ops     : 3;
-    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#22#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRQ;
-    ops     : 3;
-    optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#243#250#1#22#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#197#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#197#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#21#65#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#21#65#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_memory or ot_bits16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#21#65#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDD;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#2#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDD;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#2#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDSW;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#3#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDSW;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#3#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDW;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#1#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDW;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#1#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHMINPOSUW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#65#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMADD52LUQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBD;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#6#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBD;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#6#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBSW;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#7#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBSW;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#7#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBW;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#5#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBW;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#5#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRB;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#32#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRB;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits8,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#32#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#34#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRQ;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_immediate or ot_bits8);
-    code    : #241#242#243#250#1#34#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
-    code    : #241#242#248#1#196#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits16,ot_immediate or ot_bits8);
-    code    : #241#242#248#1#196#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDUBSW;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#4#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDUBSW;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#4#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDWD;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#245#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDWD;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#245#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSB;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#60#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSB;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#60#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSD;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#61#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSD;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#61#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSW;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#238#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSW;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#238#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUB;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#222#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUB;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#222#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#63#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVB2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMAXUD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#63#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVB2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMAXUW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#62#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVB2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMAXUW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#62#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVD2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#56#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVD2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#56#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVD2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#57#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#49#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMINSD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#57#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#49#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMINSW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#234#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#49#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMINSW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#234#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#49#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINUB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#218#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#49#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINUB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#218#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#49#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINUD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#59#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#51#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMINUD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#59#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#51#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMINUW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#58#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#51#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMINUW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#58#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#51#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVDW;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#215#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#51#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVDW;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#215#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#51#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVM2B;
     ops     : 2;
-    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#215#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVM2B;
     ops     : 2;
-    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#215#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVM2B;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#33#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVM2D;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#33#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVM2D;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#33#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVM2D;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#33#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2Q;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#249#1#34#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2Q;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#34#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2Q;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#34#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2W;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#34#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBW;
+    opcode  : A_VPMOVM2W;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#32#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBW;
+    opcode  : A_VPMOVM2W;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#32#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBW;
+    opcode  : A_VPMOVQ2M;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#32#72;
-    flags   : [if_avx2]
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXDQ;
+    opcode  : A_VPMOVQ2M;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#37#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXDQ;
+    opcode  : A_VPMOVQ2M;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#37#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXDQ;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#37#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem16_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#50#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMOVSXWD;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#35#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#50#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMOVSXWD;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#35#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#50#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMOVSXWD;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#35#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#50#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#36#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#50#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#36#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#50#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#36#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#53#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#36#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#53#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#49#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#53#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#49#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#53#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#49#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#53#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#49#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#53#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#249#1#50#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#52#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#50#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#52#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#50#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#52#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#50#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#52#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBW;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#48#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#52#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBW;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#48#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#52#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBW;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#48#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#33#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXDQ;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#53#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#33#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXDQ;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#53#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#33#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXDQ;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#53#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#33#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXWD;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#51#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#33#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXWD;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#51#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#33#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXWD;
+    opcode  : A_VPMOVSDW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#51#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#35#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#52#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#35#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#52#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#35#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#52#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#35#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#52#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#35#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#40#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSDW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#35#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#40#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_mem16_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#34#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMULHRSW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#11#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#34#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMULHRSW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#11#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#34#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMULHUW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#228#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#34#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULHUW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#228#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#34#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULHW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#229#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#34#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULHW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#229#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#37#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#64#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#37#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#64#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#37#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#213#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#37#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#213#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#37#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULUDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#244#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#37#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#36#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMULUDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#244#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#36#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPOR;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#235#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#36#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPOR;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#235#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#36#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSADBW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#246#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#36#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSADBW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#246#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#36#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#0#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#32#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSHUFB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#0#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#32#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSHUFD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#112#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#32#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSHUFD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#112#72#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#32#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFHW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #219#242#248#1#112#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#32#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFHW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #219#242#244#248#1#112#72#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#32#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #220#242#248#1#112#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#17#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSHUFLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #220#242#244#248#1#112#72#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#17#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSIGNB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#8#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#17#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSIGNB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#8#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#17#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSIGND;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#10#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#17#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSIGND;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#10#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#17#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSIGNW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#9#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#19#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSIGNW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#9#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#19#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#114#60#142#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#19#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#242#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#19#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#114#60#142#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#19#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#242#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#19#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#143#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_mem16_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#18#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPSLLDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#143#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#18#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#243#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#18#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#142#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#18#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#243#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#18#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#142#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#18#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#113#60#142#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#21#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#241#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#21#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#113#60#142#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#21#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#241#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#21#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#114#60#140#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#21#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#226#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#21#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#114#60#140#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#20#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#226#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#20#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#113#60#140#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#20#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#225#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#20#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#113#60#140#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#20#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#225#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#20#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#114#60#138#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#16#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#210#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#16#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#114#60#138#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#16#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#210#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#16#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#139#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#16#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#139#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#16#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#138#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVW2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#211#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVW2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#138#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVW2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#211#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#48#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#113#60#138#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#48#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#209#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#48#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#113#60#138#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#48#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#209#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#48#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSUBB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#248#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#48#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSUBB;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#248#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBD;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#250#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBD;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#250#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBQ;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#251#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBQ;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#251#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSB;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#232#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSB;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#232#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSW;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#233#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSW;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#233#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSB;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#216#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSB;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#216#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSW;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#217#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSW;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#217#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBW;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#249#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBW;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#249#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPTEST;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#23#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPORD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPTEST;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#23#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPORD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHBW;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#104#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHBW;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#104#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHDQ;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#106#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHDQ;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#106#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHQDQ;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#109#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHQDQ;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#109#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHWD;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#105#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHWD;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#105#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLBW;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#96#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLBW;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#96#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLDQ;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#98#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLDQ;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#98#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLQDQ;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#108#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLQDQ;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#108#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLWD;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#97#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLWD;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#97#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPXOR;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#239#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPXOR;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#239#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#83#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPPS;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#83#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPSS;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#83#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPSS;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#83#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPD;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#9#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPD;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#9#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPS;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#8#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPS;
+    opcode  : A_VPROLVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#8#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#11#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#11#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#10#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#10#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTPS;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#82#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#82#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTSS;
+    opcode  : A_VPRORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#82#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTSS;
+    opcode  : A_VPRORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#82#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPD;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #242#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPS;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #242#244#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPS;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSD;
+    opcode  : A_VPRORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSD;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSS;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSS;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSTMXCSR;
-    ops     : 1;
-    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
-    code    : #242#248#1#174#131;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPD;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPD;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPS;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPS;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSD;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSD;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSS;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSS;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VTESTPD;
+    opcode  : A_VPSCATTERDD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#15#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VTESTPD;
+    opcode  : A_VPSCATTERDD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#15#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VTESTPS;
+    opcode  : A_VPSCATTERDD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#14#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmem32_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VTESTPS;
+    opcode  : A_VPSCATTERDQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#14#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISD;
+    opcode  : A_VPSCATTERDQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISD;
+    opcode  : A_VPSCATTERDQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISS;
+    opcode  : A_VPSCATTERQD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISS;
+    opcode  : A_VPSCATTERQD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQD;
+    ops     : 2;
+    optypes : (ot_zmem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQQ;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQQ;
+    ops     : 2;
+    optypes : (ot_ymem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQQ;
+    ops     : 2;
+    optypes : (ot_zmem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKLPD;
+    opcode  : A_VPSLLVW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#18#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VUNPCKLPD;
+    opcode  : A_VPSLLVW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#18#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VUNPCKLPS;
+    opcode  : A_VPSLLVW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#18#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VUNPCKLPS;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
   ),
   (
-    opcode  : A_VXORPD;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VXORPD;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VXORPS;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#244#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
   ),
   (
-    opcode  : A_VXORPS;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VZEROALL;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #242#244#248#1#119;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSRAQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VZEROUPPER;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #242#248#1#119;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSRAQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#234#241#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
   ),
   (
-    opcode  : A_ANDN;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #242#249#1#242#61#80;
-    flags   : [if_bmi1,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BEXTR;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #242#249#1#247#62#72;
-    flags   : [if_bmi1,if_prot]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BLSI;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #242#249#1#243#60#139;
-    flags   : [if_bmi1,if_prot]
+    opcode  : A_VPSRAVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BLSMSK;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #242#249#1#243#60#138;
-    flags   : [if_bmi1,if_prot]
+    opcode  : A_VPSRAVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BLSR;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #242#249#1#243#60#137;
-    flags   : [if_bmi1,if_prot]
+    opcode  : A_VPSRAVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_TZCNT;
-    ops     : 2;
-    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_rm_gpr,ot_none,ot_none);
-    code    : #208#219#2#15#188#72;
-    flags   : [if_bmi1,if_sm]
+    opcode  : A_VPSRAVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BZHI;
+    opcode  : A_VPSRAVQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #242#249#1#245#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_MULX;
+    opcode  : A_VPSRAVQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #220#242#249#1#246#61#80;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_PDEP;
+    opcode  : A_VPSRAVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #220#242#249#1#245#61#80;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#17#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_PEXT;
+    opcode  : A_VPSRAVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #219#242#249#1#245#61#80;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#17#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_RORX;
+    opcode  : A_VPSRAVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8,ot_none);
-    code    : #220#242#250#1#240#72#22;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#17#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_SARX;
+    opcode  : A_VPSRLVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #219#242#249#1#247#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#16#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_SHLX;
+    opcode  : A_VPSRLVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #241#242#249#1#247#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#16#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_SHRX;
+    opcode  : A_VPSRLVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #220#242#249#1#247#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#16#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_ADCX;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #241#3#15#56#246#72;
-    flags   : [if_adx]
+    opcode  : A_VPTERNLOGD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_ADOX;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #219#3#15#56#246#72;
-    flags   : [if_adx]
+    opcode  : A_VPTERNLOGD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VBROADCASTI128;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #241#242#244#249#1#90#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VEXTRACTI128;
-    ops     : 3;
-    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#57#65#22;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VINSERTI128;
+    opcode  : A_VPTERNLOGD;
     ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#56#61#80#23;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDD;
+    opcode  : A_VPTERNLOGD;
     ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#2#61#80#23;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDD;
+    opcode  : A_VPTERNLOGQ;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#2#61#80#23;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPTESTMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPTESTMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPTESTMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits8,ot_none,ot_none);
-    code    : #241#242#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits8,ot_none,ot_none);
-    code    : #241#242#244#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTNMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#244#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTNMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTNMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPERM2I128;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#70#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTNMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMD;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#54#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #219#232#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMPD;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#243#244#250#1#1#72#22;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMPS;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#22#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #219#232#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMQ;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#243#244#250#1#0#72#22;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #219#232#233#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#244#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #219#232#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#234#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#243#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #219#232#234#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #219#232#233#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#243#244#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#234#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPSLLVD;
+    opcode  : A_VPTESTNMW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#234#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPSLLVD;
+    opcode  : A_VPTESTNMW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#234#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPSLLVQ;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#243#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSLLVQ;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#243#244#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRAVD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#70#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRAVD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#70#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVQ;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#243#244#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVQ;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#243#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERDPD;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERDPD;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_xmem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERDPS;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERDPS;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#80#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VRANGESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#81#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VRANGESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#81#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VRANGESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#81#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VRANGESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#81#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERQPD;
+    opcode  : A_VRCP14SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#77#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VGATHERQPD;
+    opcode  : A_VRCP14SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#234#241#249#1#77#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VGATHERQPS;
+    opcode  : A_VRCP14SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#77#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VGATHERQPS;
+    opcode  : A_VRCP14SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
-    code    : #241#242#244#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#241#249#1#77#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPGATHERDD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#144#62#72;
-    flags   : [if_avx2]
+    opcode  : A_VRCP28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERDD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#144#62#72;
-    flags   : [if_avx2]
+    opcode  : A_VRCP28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#144#62#72;
-    flags   : [if_avx2]
+    opcode  : A_VRCP28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#202#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPGATHERDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_xmem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#144#62#72;
-    flags   : [if_avx2]
+    opcode  : A_VRCP28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERQD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#145#62#72;
-    flags   : [if_avx2]
+    opcode  : A_VRCP28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERQD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
-    code    : #241#242#244#249#1#145#62#72;
-    flags   : [if_avx2]
+    opcode  : A_VRCP28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#202#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPGATHERQQ;
+    opcode  : A_VRCP28SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#145#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#203#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VPGATHERQQ;
+    opcode  : A_VRCP28SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#145#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#234#241#249#1#203#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD132PD;
+    opcode  : A_VRCP28SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#152#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#203#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADD132PD;
+    opcode  : A_VRCP28SS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#152#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#241#249#1#203#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD213PD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#168#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD213PD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#168#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD231PD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#184#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD231PD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#184#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
-    code    : #241#242#250#1#105#61#80#247;
-    flags   : [if_fma4]
+    opcode  : A_VREDUCEPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_xmmrm);
-    code    : #241#242#250#243#1#105#61#88#246;
-    flags   : [if_fma4]
+    opcode  : A_VREDUCEPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD132PS;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#152#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#86#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD132PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#152#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD213PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#168#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD213PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#168#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD231PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#184#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD231PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#184#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD132SD;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#153#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD213SD;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#169#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#86#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD231SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#185#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#87#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADD132SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#153#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#87#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD213SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#169#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#87#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADD231SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#185#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#87#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADDSUB132PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB132PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB213PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#166#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB213PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#166#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB231PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#182#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB231PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#182#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB132PS;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#9#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADDSUB132PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB213PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#166#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB213PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#166#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB231PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#182#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB231PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#182#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD132PD;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#151#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD132PD;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#151#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#8#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUBADD213PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#167#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRNDSCALESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#11#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUBADD213PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#167#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRNDSCALESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#11#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUBADD231PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#183#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRNDSCALESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#10#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUBADD231PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#183#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRNDSCALESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#10#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUBADD132PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#151#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD132PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#151#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD213PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#167#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD213PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#167#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD231PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#183#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD231PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#183#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB132PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#154#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB132PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#154#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB213PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#170#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB213PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#170#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB231PD;
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#186#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#234#241#249#1#79#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB231PD;
+    opcode  : A_VRSQRT14SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#186#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#79#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB132PS;
+    opcode  : A_VRSQRT14SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#154#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#241#249#1#79#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB132PS;
+    opcode  : A_VRSQRT14SS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#154#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#79#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB213PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#170#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB213PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#170#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB231PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#186#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#204#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB231PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#186#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB132SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#155#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB213SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#171#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#204#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB231SD;
+    opcode  : A_VRSQRT28SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#187#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#205#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB132SS;
+    opcode  : A_VRSQRT28SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#155#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#234#241#249#1#205#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB213SS;
+    opcode  : A_VRSQRT28SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#171#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#205#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB231SS;
+    opcode  : A_VRSQRT28SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#187#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#241#249#1#205#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD132PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD132PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD132PS;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#44#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD132PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD132SD;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#157#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213SD;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#173#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#44#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD231SD;
+    opcode  : A_VSCALEFSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#189#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#45#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMADD132SS;
+    opcode  : A_VSCALEFSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#157#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#249#1#45#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD213SS;
+    opcode  : A_VSCALEFSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#173#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#45#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMADD231SS;
+    opcode  : A_VSCALEFSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#189#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#249#1#45#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMSUB132PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPD;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPD;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPD;
+    ops     : 2;
+    optypes : (ot_ymem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPS;
+    ops     : 2;
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPS;
+    ops     : 2;
+    optypes : (ot_ymem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPS;
+    ops     : 2;
+    optypes : (ot_zmem32_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPD;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPD;
+    ops     : 2;
+    optypes : (ot_ymem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPD;
+    ops     : 2;
+    optypes : (ot_zmem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPS;
+    ops     : 2;
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPS;
+    ops     : 2;
+    optypes : (ot_ymem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPS;
+    ops     : 2;
+    optypes : (ot_zmem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#159#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB213SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#175#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB231SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#191#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB132SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#159#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB213SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#175#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB231SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#191#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XACQUIRE;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #1#242;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XRELEASE;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #1#243;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XBEGIN;
-    ops     : 1;
-    optypes : (ot_memory,ot_none,ot_none,ot_none);
-    code    : #208#2#199#248#52;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XABORT;
-    ops     : 1;
-    optypes : (ot_immediate,ot_none,ot_none,ot_none);
-    code    : #2#198#248#20;
-    flags   : [if_tsx,if_sb]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XEND;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #3#15#1#213;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XTEST;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #3#15#1#214;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_RDRAND;
-    ops     : 1;
-    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
-    code    : #208#2#15#199#134;
-    flags   : [if_rand]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_RDSEED;
-    ops     : 1;
-    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
-    code    : #208#2#15#199#135;
-    flags   : [if_rand]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XGETBV;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #3#15#1#208;
-    flags   : [if_xsave]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_PREFETCHWT1;
-    ops     : 1;
-    optypes : (ot_memory,ot_none,ot_none,ot_none);
-    code    : #2#15#13#130;
-    flags   : [if_prefetchwt1]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   )
 );

+ 4 - 4
compiler/i386/n386add.pas

@@ -64,7 +64,7 @@ interface
 
     function ti386addnode.use_generic_mul64bit: boolean;
     begin
-      result:=(cs_check_overflow in current_settings.localswitches) or
+      result:=needoverflowcheck or
         (cs_opt_size in current_settings.optimizerswitches);
     end;
 
@@ -78,7 +78,7 @@ interface
                 not(is_signed(right.resultdef));
       { use IMUL instead of MUL in case overflow checking is off and we're
         doing a 32->32-bit multiplication }
-      if not (cs_check_overflow in current_settings.localswitches) and
+      if not needoverflowcheck and
          not is_64bit(resultdef) then
         unsigned:=false;
       if (nodetype=muln) and (unsigned or is_64bit(resultdef)) then
@@ -213,7 +213,7 @@ interface
         { is in unsigned VAR!!                              }
         if mboverflow then
          begin
-           if cs_check_overflow in current_settings.localswitches  then
+           if needoverflowcheck then
             begin
               current_asmdata.getjumplabel(hl4);
               if unsigned then
@@ -487,7 +487,7 @@ interface
         emit_ref(asmops[unsigned],S_L,ref)
       else
         emit_reg(asmops[unsigned],S_L,reg);
-      if (cs_check_overflow in current_settings.localswitches) and
+      if needoverflowcheck and
         { 32->64 bit cannot overflow }
         (not is_64bit(resultdef)) then
         begin

+ 16 - 0
compiler/i386/r386ari.inc

@@ -43,6 +43,14 @@
 29,
 30,
 39,
+98,
+99,
+100,
+101,
+102,
+103,
+104,
+105,
 66,
 67,
 68,
@@ -88,4 +96,12 @@
 88,
 89,
 36,
+90,
+91,
+92,
+93,
+94,
+95,
+96,
+97,
 0

+ 17 - 1
compiler/i386/r386att.inc

@@ -88,4 +88,20 @@
 '%ymm4',
 '%ymm5',
 '%ymm6',
-'%ymm7'
+'%ymm7',
+'%zmm0',
+'%zmm1',
+'%zmm2',
+'%zmm3',
+'%zmm4',
+'%zmm5',
+'%zmm6',
+'%zmm7',
+'%k0',
+'%k1',
+'%k2',
+'%k3',
+'%k4',
+'%k5',
+'%k6',
+'%k7'

+ 16 - 0
compiler/i386/r386con.inc

@@ -89,3 +89,19 @@ NR_YMM4 = tregister($040D0004);
 NR_YMM5 = tregister($040D0005);
 NR_YMM6 = tregister($040D0006);
 NR_YMM7 = tregister($040D0007);
+NR_ZMM0 = tregister($040E0000);
+NR_ZMM1 = tregister($040E0001);
+NR_ZMM2 = tregister($040E0002);
+NR_ZMM3 = tregister($040E0003);
+NR_ZMM4 = tregister($040E0004);
+NR_ZMM5 = tregister($040E0005);
+NR_ZMM6 = tregister($040E0006);
+NR_ZMM7 = tregister($040E0007);
+NR_K0 = tregister($06000000);
+NR_K1 = tregister($06000001);
+NR_K2 = tregister($06000002);
+NR_K3 = tregister($06000003);
+NR_K4 = tregister($06000004);
+NR_K5 = tregister($06000005);
+NR_K6 = tregister($06000006);
+NR_K7 = tregister($06000007);

+ 17 - 1
compiler/i386/r386dwrf.inc

@@ -88,4 +88,20 @@
 25,
 26,
 27,
-28
+28,
+21,
+22,
+23,
+24,
+25,
+26,
+27,
+28,
+118,
+119,
+120,
+121,
+122,
+123,
+124,
+125

+ 17 - 1
compiler/i386/r386int.inc

@@ -88,4 +88,20 @@
 'ymm4',
 'ymm5',
 'ymm6',
-'ymm7'
+'ymm7',
+'zmm0',
+'zmm1',
+'zmm2',
+'zmm3',
+'zmm4',
+'zmm5',
+'zmm6',
+'zmm7',
+'k0',
+'k1',
+'k2',
+'k3',
+'k4',
+'k5',
+'k6',
+'k7'

+ 17 - 1
compiler/i386/r386iri.inc

@@ -44,6 +44,14 @@
 29,
 30,
 39,
+98,
+99,
+100,
+101,
+102,
+103,
+104,
+105,
 66,
 67,
 68,
@@ -88,4 +96,12 @@
 87,
 88,
 89,
-36
+36,
+90,
+91,
+92,
+93,
+94,
+95,
+96,
+97

+ 17 - 1
compiler/i386/r386nasm.inc

@@ -88,4 +88,20 @@
 'ymm4',
 'ymm5',
 'ymm6',
-'ymm7'
+'ymm7',
+'zmm0',
+'zmm1',
+'zmm2',
+'zmm3',
+'zmm4',
+'zmm5',
+'zmm6',
+'zmm7',
+'k0',
+'k1',
+'k2',
+'k3',
+'k4',
+'k5',
+'k6',
+'k7'

+ 1 - 1
compiler/i386/r386nor.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from x86reg.dat }
-90
+106

+ 17 - 1
compiler/i386/r386nri.inc

@@ -44,6 +44,14 @@
 29,
 30,
 39,
+98,
+99,
+100,
+101,
+102,
+103,
+104,
+105,
 66,
 67,
 68,
@@ -88,4 +96,12 @@
 87,
 88,
 89,
-36
+36,
+90,
+91,
+92,
+93,
+94,
+95,
+96,
+97

+ 17 - 1
compiler/i386/r386num.inc

@@ -88,4 +88,20 @@ tregister($040D0003),
 tregister($040D0004),
 tregister($040D0005),
 tregister($040D0006),
-tregister($040D0007)
+tregister($040D0007),
+tregister($040E0000),
+tregister($040E0001),
+tregister($040E0002),
+tregister($040E0003),
+tregister($040E0004),
+tregister($040E0005),
+tregister($040E0006),
+tregister($040E0007),
+tregister($06000000),
+tregister($06000001),
+tregister($06000002),
+tregister($06000003),
+tregister($06000004),
+tregister($06000005),
+tregister($06000006),
+tregister($06000007)

+ 17 - 1
compiler/i386/r386ot.inc

@@ -88,4 +88,20 @@ OT_YMMREG,
 OT_YMMREG,
 OT_YMMREG,
 OT_YMMREG,
-OT_YMMREG
+OT_YMMREG,
+OT_ZMMREG,
+OT_ZMMREG,
+OT_ZMMREG,
+OT_ZMMREG,
+OT_ZMMREG,
+OT_ZMMREG,
+OT_ZMMREG,
+OT_ZMMREG,
+OT_KREG,
+OT_KREG,
+OT_KREG,
+OT_KREG,
+OT_KREG,
+OT_KREG,
+OT_KREG,
+OT_KREG

+ 17 - 1
compiler/i386/r386rni.inc

@@ -57,6 +57,14 @@
 87,
 88,
 89,
+90,
+91,
+92,
+93,
+94,
+95,
+96,
+97,
 25,
 26,
 27,
@@ -88,4 +96,12 @@
 37,
 38,
 39,
-40
+40,
+98,
+99,
+100,
+101,
+102,
+103,
+104,
+105

+ 17 - 1
compiler/i386/r386sri.inc

@@ -44,6 +44,14 @@
 29,
 30,
 39,
+98,
+99,
+100,
+101,
+102,
+103,
+104,
+105,
 66,
 67,
 68,
@@ -88,4 +96,12 @@
 87,
 88,
 89,
-36
+36,
+90,
+91,
+92,
+93,
+94,
+95,
+96,
+97

+ 17 - 1
compiler/i386/r386stab.inc

@@ -88,4 +88,20 @@
 25,
 26,
 27,
-28
+28,
+21,
+22,
+23,
+24,
+25,
+26,
+27,
+28,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1

+ 17 - 1
compiler/i386/r386std.inc

@@ -88,4 +88,20 @@
 'ymm4',
 'ymm5',
 'ymm6',
-'ymm7'
+'ymm7',
+'zmm0',
+'zmm1',
+'zmm2',
+'zmm3',
+'zmm4',
+'zmm5',
+'zmm6',
+'zmm7',
+'k0',
+'k1',
+'k2',
+'k3',
+'k4',
+'k5',
+'k6',
+'k7'

+ 1 - 1
compiler/i8086/hlcgcpu.pas

@@ -599,7 +599,7 @@ implementation
       if make_global then
         List.concat(Tai_symbol.Createname_global(labelname,AT_FUNCTION,0,procdef))
       else
-        List.concat(Tai_symbol.Createname(labelname,AT_FUNCTION,0,procdef));
+        List.concat(Tai_symbol.Createname_hidden(labelname,AT_FUNCTION,0,procdef));
 
       { set param1 interface to self  }
       g_adjust_self_value(list,procdef,ioffset);

+ 314 - 34
compiler/i8086/i8086att.inc

@@ -783,8 +783,10 @@
 'vcvtdq2ps',
 'vcvtpd2dq',
 'vcvtpd2ps',
+'vcvtph2ps',
 'vcvtps2dq',
 'vcvtps2pd',
+'vcvtps2ph',
 'vcvtsd2si',
 'vcvtsd2ss',
 'vcvtsi2sd',
@@ -1067,66 +1069,66 @@
 'set1',
 'sub4s',
 'test1',
-'vfmadd132pd',
-'vfmadd213pd',
-'vfmadd231pd',
 'vfmaddpd',
+'vfmadd132pd',
 'vfmadd132ps',
-'vfmadd213ps',
-'vfmadd231ps',
 'vfmadd132sd',
-'vfmadd213sd',
-'vfmadd231sd',
 'vfmadd132ss',
+'vfmadd213pd',
+'vfmadd213ps',
+'vfmadd213sd',
 'vfmadd213ss',
+'vfmadd231pd',
+'vfmadd231ps',
+'vfmadd231sd',
 'vfmadd231ss',
 'vfmaddsub132pd',
-'vfmaddsub213pd',
-'vfmaddsub231pd',
 'vfmaddsub132ps',
+'vfmaddsub213pd',
 'vfmaddsub213ps',
+'vfmaddsub231pd',
 'vfmaddsub231ps',
-'vfmsubadd132pd',
-'vfmsubadd213pd',
-'vfmsubadd231pd',
-'vfmsubadd132ps',
-'vfmsubadd213ps',
-'vfmsubadd231ps',
 'vfmsub132pd',
-'vfmsub213pd',
-'vfmsub231pd',
 'vfmsub132ps',
-'vfmsub213ps',
-'vfmsub231ps',
 'vfmsub132sd',
-'vfmsub213sd',
-'vfmsub231sd',
 'vfmsub132ss',
+'vfmsub213pd',
+'vfmsub213ps',
+'vfmsub213sd',
 'vfmsub213ss',
+'vfmsub231pd',
+'vfmsub231ps',
+'vfmsub231sd',
 'vfmsub231ss',
+'vfmsubadd132pd',
+'vfmsubadd132ps',
+'vfmsubadd213pd',
+'vfmsubadd213ps',
+'vfmsubadd231pd',
+'vfmsubadd231ps',
 'vfnmadd132pd',
-'vfnmadd213pd',
-'vfnmadd231pd',
 'vfnmadd132ps',
-'vfnmadd213ps',
-'vfnmadd231ps',
 'vfnmadd132sd',
-'vfnmadd213sd',
-'vfnmadd231sd',
 'vfnmadd132ss',
+'vfnmadd213pd',
+'vfnmadd213ps',
+'vfnmadd213sd',
 'vfnmadd213ss',
+'vfnmadd231pd',
+'vfnmadd231ps',
+'vfnmadd231sd',
 'vfnmadd231ss',
 'vfnmsub132pd',
-'vfnmsub213pd',
-'vfnmsub231pd',
 'vfnmsub132ps',
-'vfnmsub213ps',
-'vfnmsub231ps',
 'vfnmsub132sd',
-'vfnmsub213sd',
-'vfnmsub231sd',
 'vfnmsub132ss',
+'vfnmsub213pd',
+'vfnmsub213ps',
+'vfnmsub213sd',
 'vfnmsub213ss',
+'vfnmsub231pd',
+'vfnmsub231ps',
+'vfnmsub231sd',
 'vfnmsub231ss',
 'xacquire',
 'xrelease',
@@ -1137,5 +1139,283 @@
 'rdrand',
 'rdseed',
 'xgetbv',
-'prefetchwt1'
+'prefetchwt1',
+'kaddb',
+'kaddd',
+'kaddq',
+'kaddw',
+'kandb',
+'kandd',
+'kandnb',
+'kandnd',
+'kandnq',
+'kandnw',
+'kandq',
+'kandw',
+'kmovb',
+'kmovd',
+'kmovq',
+'kmovw',
+'knotb',
+'knotd',
+'knotq',
+'knotw',
+'korb',
+'kord',
+'korq',
+'kortestb',
+'kortestd',
+'kortestq',
+'kortestw',
+'korw',
+'kshiftlb',
+'kshiftld',
+'kshiftlq',
+'kshiftlw',
+'kshiftrb',
+'kshiftrd',
+'kshiftrq',
+'kshiftrw',
+'ktestb',
+'ktestd',
+'ktestq',
+'ktestw',
+'kunpckbw',
+'kunpckdq',
+'kunpckwd',
+'kxnorb',
+'kxnord',
+'kxnorq',
+'kxnorw',
+'kxorb',
+'kxord',
+'kxorq',
+'kxorw',
+'valignd',
+'valignq',
+'vblendmpd',
+'vblendmps',
+'vbroadcastf32x2',
+'vbroadcastf32x4',
+'vbroadcastf32x8',
+'vbroadcastf64x2',
+'vbroadcastf64x4',
+'vbroadcasti32x2',
+'vbroadcasti32x4',
+'vbroadcasti32x8',
+'vbroadcasti64x2',
+'vbroadcasti64x4',
+'vcompresspd',
+'vcompressps',
+'vcvtpd2qq',
+'vcvtpd2udq',
+'vcvtpd2uqq',
+'vcvtps2qq',
+'vcvtps2udq',
+'vcvtps2uqq',
+'vcvtqq2pd',
+'vcvtqq2ps',
+'vcvtsd2usi',
+'vcvtss2usi',
+'vcvttpd2qq',
+'vcvttpd2udq',
+'vcvttpd2uqq',
+'vcvttps2qq',
+'vcvttps2udq',
+'vcvttps2uqq',
+'vcvttsd2usi',
+'vcvttss2usi',
+'vcvtudq2pd',
+'vcvtudq2ps',
+'vcvtuqq2pd',
+'vcvtuqq2ps',
+'vcvtusi2sd',
+'vcvtusi2ss',
+'vdbpsadbw',
+'vexp2pd',
+'vexp2ps',
+'vexpandpd',
+'vexpandps',
+'vextractf32x4',
+'vextractf32x8',
+'vextractf64x2',
+'vextractf64x4',
+'vextracti32x4',
+'vextracti32x8',
+'vextracti64x2',
+'vextracti64x4',
+'vfixupimmpd',
+'vfixupimmps',
+'vfixupimmsd',
+'vfixupimmss',
+'vfpclasspd',
+'vfpclassps',
+'vfpclasssd',
+'vfpclassss',
+'vgetexppd',
+'vgetexpps',
+'vgetexpsd',
+'vgetexpss',
+'vgetmantpd',
+'vgetmantps',
+'vgetmantsd',
+'vgetmantss',
+'vinsertf32x4',
+'vinsertf32x8',
+'vinsertf64x2',
+'vinsertf64x4',
+'vinserti32x4',
+'vinserti32x8',
+'vinserti64x2',
+'vinserti64x4',
+'vmovdqa32',
+'vmovdqa64',
+'vmovdqu16',
+'vmovdqu32',
+'vmovdqu64',
+'vmovdqu8',
+'vpabsq',
+'vpandd',
+'vpandnd',
+'vpandnq',
+'vpandq',
+'vpblendmb',
+'vpblendmd',
+'vpblendmq',
+'vpblendmw',
+'vpcmpb',
+'vpcmpd',
+'vpcmpq',
+'vpcmpub',
+'vpcmpud',
+'vpcmpuq',
+'vpcmpuw',
+'vpcmpw',
+'vpcompressd',
+'vpcompressq',
+'vpconflictd',
+'vpconflictq',
+'vpermb',
+'vpermi2b',
+'vpermi2d',
+'vpermi2pd',
+'vpermi2ps',
+'vpermi2q',
+'vpermi2w',
+'vpermt2b',
+'vpermt2d',
+'vpermt2pd',
+'vpermt2ps',
+'vpermt2q',
+'vpermt2w',
+'vpermw',
+'vpexpandd',
+'vpexpandq',
+'vplzcntd',
+'vplzcntq',
+'vpmadd52huq',
+'vpmadd52luq',
+'vpmaxsq',
+'vpmaxuq',
+'vpminsq',
+'vpminuq',
+'vpmovb2m',
+'vpmovd2m',
+'vpmovdb',
+'vpmovdw',
+'vpmovm2b',
+'vpmovm2d',
+'vpmovm2q',
+'vpmovm2w',
+'vpmovq2m',
+'vpmovqb',
+'vpmovqd',
+'vpmovqw',
+'vpmovsdb',
+'vpmovsdw',
+'vpmovsqb',
+'vpmovsqd',
+'vpmovsqw',
+'vpmovswb',
+'vpmovusdb',
+'vpmovusdw',
+'vpmovusqb',
+'vpmovusqd',
+'vpmovusqw',
+'vpmovuswb',
+'vpmovw2m',
+'vpmovwb',
+'vpmullq',
+'vpmultishiftqb',
+'vpord',
+'vporq',
+'vprold',
+'vprolq',
+'vprolvd',
+'vprolvq',
+'vprord',
+'vprorq',
+'vprorvd',
+'vprorvq',
+'vpscatterdd',
+'vpscatterdq',
+'vpscatterqd',
+'vpscatterqq',
+'vpsllvw',
+'vpsraq',
+'vpsravq',
+'vpsravw',
+'vpsrlvw',
+'vpternlogd',
+'vpternlogq',
+'vptestmb',
+'vptestmd',
+'vptestmq',
+'vptestmw',
+'vptestnmb',
+'vptestnmd',
+'vptestnmq',
+'vptestnmw',
+'vpxord',
+'vpxorq',
+'vrangepd',
+'vrangeps',
+'vrangesd',
+'vrangess',
+'vrcp14pd',
+'vrcp14ps',
+'vrcp14sd',
+'vrcp14ss',
+'vrcp28pd',
+'vrcp28ps',
+'vrcp28sd',
+'vrcp28ss',
+'vreducepd',
+'vreduceps',
+'vreducesd',
+'vreducess',
+'vrndscalepd',
+'vrndscaleps',
+'vrndscalesd',
+'vrndscaless',
+'vrsqrt14pd',
+'vrsqrt14ps',
+'vrsqrt14sd',
+'vrsqrt14ss',
+'vrsqrt28pd',
+'vrsqrt28ps',
+'vrsqrt28sd',
+'vrsqrt28ss',
+'vscalefpd',
+'vscalefps',
+'vscalefsd',
+'vscalefss',
+'vscatterdpd',
+'vscatterdps',
+'vscatterqpd',
+'vscatterqps',
+'vshuff32x4',
+'vshuff64x2',
+'vshufi32x4',
+'vshufi64x2'
 );

+ 281 - 1
compiler/i8086/i8086atts.inc

@@ -787,6 +787,8 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -1137,5 +1139,283 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufINT
+attsufINT,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE
 );

+ 314 - 34
compiler/i8086/i8086int.inc

@@ -783,8 +783,10 @@
 'vcvtdq2ps',
 'vcvtpd2dq',
 'vcvtpd2ps',
+'vcvtph2ps',
 'vcvtps2dq',
 'vcvtps2pd',
+'vcvtps2ph',
 'vcvtsd2si',
 'vcvtsd2ss',
 'vcvtsi2sd',
@@ -1067,66 +1069,66 @@
 'set1',
 'sub4s',
 'test1',
-'vfmadd132pd',
-'vfmadd213pd',
-'vfmadd231pd',
 'vfmaddpd',
+'vfmadd132pd',
 'vfmadd132ps',
-'vfmadd213ps',
-'vfmadd231ps',
 'vfmadd132sd',
-'vfmadd213sd',
-'vfmadd231sd',
 'vfmadd132ss',
+'vfmadd213pd',
+'vfmadd213ps',
+'vfmadd213sd',
 'vfmadd213ss',
+'vfmadd231pd',
+'vfmadd231ps',
+'vfmadd231sd',
 'vfmadd231ss',
 'vfmaddsub132pd',
-'vfmaddsub213pd',
-'vfmaddsub231pd',
 'vfmaddsub132ps',
+'vfmaddsub213pd',
 'vfmaddsub213ps',
+'vfmaddsub231pd',
 'vfmaddsub231ps',
-'vfmsubadd132pd',
-'vfmsubadd213pd',
-'vfmsubadd231pd',
-'vfmsubadd132ps',
-'vfmsubadd213ps',
-'vfmsubadd231ps',
 'vfmsub132pd',
-'vfmsub213pd',
-'vfmsub231pd',
 'vfmsub132ps',
-'vfmsub213ps',
-'vfmsub231ps',
 'vfmsub132sd',
-'vfmsub213sd',
-'vfmsub231sd',
 'vfmsub132ss',
+'vfmsub213pd',
+'vfmsub213ps',
+'vfmsub213sd',
 'vfmsub213ss',
+'vfmsub231pd',
+'vfmsub231ps',
+'vfmsub231sd',
 'vfmsub231ss',
+'vfmsubadd132pd',
+'vfmsubadd132ps',
+'vfmsubadd213pd',
+'vfmsubadd213ps',
+'vfmsubadd231pd',
+'vfmsubadd231ps',
 'vfnmadd132pd',
-'vfnmadd213pd',
-'vfnmadd231pd',
 'vfnmadd132ps',
-'vfnmadd213ps',
-'vfnmadd231ps',
 'vfnmadd132sd',
-'vfnmadd213sd',
-'vfnmadd231sd',
 'vfnmadd132ss',
+'vfnmadd213pd',
+'vfnmadd213ps',
+'vfnmadd213sd',
 'vfnmadd213ss',
+'vfnmadd231pd',
+'vfnmadd231ps',
+'vfnmadd231sd',
 'vfnmadd231ss',
 'vfnmsub132pd',
-'vfnmsub213pd',
-'vfnmsub231pd',
 'vfnmsub132ps',
-'vfnmsub213ps',
-'vfnmsub231ps',
 'vfnmsub132sd',
-'vfnmsub213sd',
-'vfnmsub231sd',
 'vfnmsub132ss',
+'vfnmsub213pd',
+'vfnmsub213ps',
+'vfnmsub213sd',
 'vfnmsub213ss',
+'vfnmsub231pd',
+'vfnmsub231ps',
+'vfnmsub231sd',
 'vfnmsub231ss',
 'xacquire',
 'xrelease',
@@ -1137,5 +1139,283 @@
 'rdrand',
 'rdseed',
 'xgetbv',
-'prefetchwt1'
+'prefetchwt1',
+'kaddb',
+'kaddd',
+'kaddq',
+'kaddw',
+'kandb',
+'kandd',
+'kandnb',
+'kandnd',
+'kandnq',
+'kandnw',
+'kandq',
+'kandw',
+'kmovb',
+'kmovd',
+'kmovq',
+'kmovw',
+'knotb',
+'knotd',
+'knotq',
+'knotw',
+'korb',
+'kord',
+'korq',
+'kortestb',
+'kortestd',
+'kortestq',
+'kortestw',
+'korw',
+'kshiftlb',
+'kshiftld',
+'kshiftlq',
+'kshiftlw',
+'kshiftrb',
+'kshiftrd',
+'kshiftrq',
+'kshiftrw',
+'ktestb',
+'ktestd',
+'ktestq',
+'ktestw',
+'kunpckbw',
+'kunpckdq',
+'kunpckwd',
+'kxnorb',
+'kxnord',
+'kxnorq',
+'kxnorw',
+'kxorb',
+'kxord',
+'kxorq',
+'kxorw',
+'valignd',
+'valignq',
+'vblendmpd',
+'vblendmps',
+'vbroadcastf32x2',
+'vbroadcastf32x4',
+'vbroadcastf32x8',
+'vbroadcastf64x2',
+'vbroadcastf64x4',
+'vbroadcasti32x2',
+'vbroadcasti32x4',
+'vbroadcasti32x8',
+'vbroadcasti64x2',
+'vbroadcasti64x4',
+'vcompresspd',
+'vcompressps',
+'vcvtpd2qq',
+'vcvtpd2udq',
+'vcvtpd2uqq',
+'vcvtps2qq',
+'vcvtps2udq',
+'vcvtps2uqq',
+'vcvtqq2pd',
+'vcvtqq2ps',
+'vcvtsd2usi',
+'vcvtss2usi',
+'vcvttpd2qq',
+'vcvttpd2udq',
+'vcvttpd2uqq',
+'vcvttps2qq',
+'vcvttps2udq',
+'vcvttps2uqq',
+'vcvttsd2usi',
+'vcvttss2usi',
+'vcvtudq2pd',
+'vcvtudq2ps',
+'vcvtuqq2pd',
+'vcvtuqq2ps',
+'vcvtusi2sd',
+'vcvtusi2ss',
+'vdbpsadbw',
+'vexp2pd',
+'vexp2ps',
+'vexpandpd',
+'vexpandps',
+'vextractf32x4',
+'vextractf32x8',
+'vextractf64x2',
+'vextractf64x4',
+'vextracti32x4',
+'vextracti32x8',
+'vextracti64x2',
+'vextracti64x4',
+'vfixupimmpd',
+'vfixupimmps',
+'vfixupimmsd',
+'vfixupimmss',
+'vfpclasspd',
+'vfpclassps',
+'vfpclasssd',
+'vfpclassss',
+'vgetexppd',
+'vgetexpps',
+'vgetexpsd',
+'vgetexpss',
+'vgetmantpd',
+'vgetmantps',
+'vgetmantsd',
+'vgetmantss',
+'vinsertf32x4',
+'vinsertf32x8',
+'vinsertf64x2',
+'vinsertf64x4',
+'vinserti32x4',
+'vinserti32x8',
+'vinserti64x2',
+'vinserti64x4',
+'vmovdqa32',
+'vmovdqa64',
+'vmovdqu16',
+'vmovdqu32',
+'vmovdqu64',
+'vmovdqu8',
+'vpabsq',
+'vpandd',
+'vpandnd',
+'vpandnq',
+'vpandq',
+'vpblendmb',
+'vpblendmd',
+'vpblendmq',
+'vpblendmw',
+'vpcmpb',
+'vpcmpd',
+'vpcmpq',
+'vpcmpub',
+'vpcmpud',
+'vpcmpuq',
+'vpcmpuw',
+'vpcmpw',
+'vpcompressd',
+'vpcompressq',
+'vpconflictd',
+'vpconflictq',
+'vpermb',
+'vpermi2b',
+'vpermi2d',
+'vpermi2pd',
+'vpermi2ps',
+'vpermi2q',
+'vpermi2w',
+'vpermt2b',
+'vpermt2d',
+'vpermt2pd',
+'vpermt2ps',
+'vpermt2q',
+'vpermt2w',
+'vpermw',
+'vpexpandd',
+'vpexpandq',
+'vplzcntd',
+'vplzcntq',
+'vpmadd52huq',
+'vpmadd52luq',
+'vpmaxsq',
+'vpmaxuq',
+'vpminsq',
+'vpminuq',
+'vpmovb2m',
+'vpmovd2m',
+'vpmovdb',
+'vpmovdw',
+'vpmovm2b',
+'vpmovm2d',
+'vpmovm2q',
+'vpmovm2w',
+'vpmovq2m',
+'vpmovqb',
+'vpmovqd',
+'vpmovqw',
+'vpmovsdb',
+'vpmovsdw',
+'vpmovsqb',
+'vpmovsqd',
+'vpmovsqw',
+'vpmovswb',
+'vpmovusdb',
+'vpmovusdw',
+'vpmovusqb',
+'vpmovusqd',
+'vpmovusqw',
+'vpmovuswb',
+'vpmovw2m',
+'vpmovwb',
+'vpmullq',
+'vpmultishiftqb',
+'vpord',
+'vporq',
+'vprold',
+'vprolq',
+'vprolvd',
+'vprolvq',
+'vprord',
+'vprorq',
+'vprorvd',
+'vprorvq',
+'vpscatterdd',
+'vpscatterdq',
+'vpscatterqd',
+'vpscatterqq',
+'vpsllvw',
+'vpsraq',
+'vpsravq',
+'vpsravw',
+'vpsrlvw',
+'vpternlogd',
+'vpternlogq',
+'vptestmb',
+'vptestmd',
+'vptestmq',
+'vptestmw',
+'vptestnmb',
+'vptestnmd',
+'vptestnmq',
+'vptestnmw',
+'vpxord',
+'vpxorq',
+'vrangepd',
+'vrangeps',
+'vrangesd',
+'vrangess',
+'vrcp14pd',
+'vrcp14ps',
+'vrcp14sd',
+'vrcp14ss',
+'vrcp28pd',
+'vrcp28ps',
+'vrcp28sd',
+'vrcp28ss',
+'vreducepd',
+'vreduceps',
+'vreducesd',
+'vreducess',
+'vrndscalepd',
+'vrndscaleps',
+'vrndscalesd',
+'vrndscaless',
+'vrsqrt14pd',
+'vrsqrt14ps',
+'vrsqrt14sd',
+'vrsqrt14ss',
+'vrsqrt28pd',
+'vrsqrt28ps',
+'vrsqrt28sd',
+'vrsqrt28ss',
+'vscalefpd',
+'vscalefps',
+'vscalefsd',
+'vscalefss',
+'vscatterdpd',
+'vscatterdps',
+'vscatterqpd',
+'vscatterqps',
+'vshuff32x4',
+'vshuff64x2',
+'vshufi32x4',
+'vshufi64x2'
 );

+ 1 - 1
compiler/i8086/i8086nop.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from x86ins.dat }
-2161;
+4085;

+ 314 - 34
compiler/i8086/i8086op.inc

@@ -783,8 +783,10 @@ A_VCVTDQ2PD,
 A_VCVTDQ2PS,
 A_VCVTPD2DQ,
 A_VCVTPD2PS,
+A_VCVTPH2PS,
 A_VCVTPS2DQ,
 A_VCVTPS2PD,
+A_VCVTPS2PH,
 A_VCVTSD2SI,
 A_VCVTSD2SS,
 A_VCVTSI2SD,
@@ -1067,66 +1069,66 @@ A_ROR4,
 A_SET1,
 A_SUB4S,
 A_TEST1,
-A_VFMADD132PD,
-A_VFMADD213PD,
-A_VFMADD231PD,
 A_VFMADDPD,
+A_VFMADD132PD,
 A_VFMADD132PS,
-A_VFMADD213PS,
-A_VFMADD231PS,
 A_VFMADD132SD,
-A_VFMADD213SD,
-A_VFMADD231SD,
 A_VFMADD132SS,
+A_VFMADD213PD,
+A_VFMADD213PS,
+A_VFMADD213SD,
 A_VFMADD213SS,
+A_VFMADD231PD,
+A_VFMADD231PS,
+A_VFMADD231SD,
 A_VFMADD231SS,
 A_VFMADDSUB132PD,
-A_VFMADDSUB213PD,
-A_VFMADDSUB231PD,
 A_VFMADDSUB132PS,
+A_VFMADDSUB213PD,
 A_VFMADDSUB213PS,
+A_VFMADDSUB231PD,
 A_VFMADDSUB231PS,
-A_VFMSUBADD132PD,
-A_VFMSUBADD213PD,
-A_VFMSUBADD231PD,
-A_VFMSUBADD132PS,
-A_VFMSUBADD213PS,
-A_VFMSUBADD231PS,
 A_VFMSUB132PD,
-A_VFMSUB213PD,
-A_VFMSUB231PD,
 A_VFMSUB132PS,
-A_VFMSUB213PS,
-A_VFMSUB231PS,
 A_VFMSUB132SD,
-A_VFMSUB213SD,
-A_VFMSUB231SD,
 A_VFMSUB132SS,
+A_VFMSUB213PD,
+A_VFMSUB213PS,
+A_VFMSUB213SD,
 A_VFMSUB213SS,
+A_VFMSUB231PD,
+A_VFMSUB231PS,
+A_VFMSUB231SD,
 A_VFMSUB231SS,
+A_VFMSUBADD132PD,
+A_VFMSUBADD132PS,
+A_VFMSUBADD213PD,
+A_VFMSUBADD213PS,
+A_VFMSUBADD231PD,
+A_VFMSUBADD231PS,
 A_VFNMADD132PD,
-A_VFNMADD213PD,
-A_VFNMADD231PD,
 A_VFNMADD132PS,
-A_VFNMADD213PS,
-A_VFNMADD231PS,
 A_VFNMADD132SD,
-A_VFNMADD213SD,
-A_VFNMADD231SD,
 A_VFNMADD132SS,
+A_VFNMADD213PD,
+A_VFNMADD213PS,
+A_VFNMADD213SD,
 A_VFNMADD213SS,
+A_VFNMADD231PD,
+A_VFNMADD231PS,
+A_VFNMADD231SD,
 A_VFNMADD231SS,
 A_VFNMSUB132PD,
-A_VFNMSUB213PD,
-A_VFNMSUB231PD,
 A_VFNMSUB132PS,
-A_VFNMSUB213PS,
-A_VFNMSUB231PS,
 A_VFNMSUB132SD,
-A_VFNMSUB213SD,
-A_VFNMSUB231SD,
 A_VFNMSUB132SS,
+A_VFNMSUB213PD,
+A_VFNMSUB213PS,
+A_VFNMSUB213SD,
 A_VFNMSUB213SS,
+A_VFNMSUB231PD,
+A_VFNMSUB231PS,
+A_VFNMSUB231SD,
 A_VFNMSUB231SS,
 A_XACQUIRE,
 A_XRELEASE,
@@ -1137,5 +1139,283 @@ A_XTEST,
 A_RDRAND,
 A_RDSEED,
 A_XGETBV,
-A_PREFETCHWT1
+A_PREFETCHWT1,
+A_KADDB,
+A_KADDD,
+A_KADDQ,
+A_KADDW,
+A_KANDB,
+A_KANDD,
+A_KANDNB,
+A_KANDND,
+A_KANDNQ,
+A_KANDNW,
+A_KANDQ,
+A_KANDW,
+A_KMOVB,
+A_KMOVD,
+A_KMOVQ,
+A_KMOVW,
+A_KNOTB,
+A_KNOTD,
+A_KNOTQ,
+A_KNOTW,
+A_KORB,
+A_KORD,
+A_KORQ,
+A_KORTESTB,
+A_KORTESTD,
+A_KORTESTQ,
+A_KORTESTW,
+A_KORW,
+A_KSHIFTLB,
+A_KSHIFTLD,
+A_KSHIFTLQ,
+A_KSHIFTLW,
+A_KSHIFTRB,
+A_KSHIFTRD,
+A_KSHIFTRQ,
+A_KSHIFTRW,
+A_KTESTB,
+A_KTESTD,
+A_KTESTQ,
+A_KTESTW,
+A_KUNPCKBW,
+A_KUNPCKDQ,
+A_KUNPCKWD,
+A_KXNORB,
+A_KXNORD,
+A_KXNORQ,
+A_KXNORW,
+A_KXORB,
+A_KXORD,
+A_KXORQ,
+A_KXORW,
+A_VALIGND,
+A_VALIGNQ,
+A_VBLENDMPD,
+A_VBLENDMPS,
+A_VBROADCASTF32X2,
+A_VBROADCASTF32X4,
+A_VBROADCASTF32X8,
+A_VBROADCASTF64X2,
+A_VBROADCASTF64X4,
+A_VBROADCASTI32X2,
+A_VBROADCASTI32X4,
+A_VBROADCASTI32X8,
+A_VBROADCASTI64X2,
+A_VBROADCASTI64X4,
+A_VCOMPRESSPD,
+A_VCOMPRESSPS,
+A_VCVTPD2QQ,
+A_VCVTPD2UDQ,
+A_VCVTPD2UQQ,
+A_VCVTPS2QQ,
+A_VCVTPS2UDQ,
+A_VCVTPS2UQQ,
+A_VCVTQQ2PD,
+A_VCVTQQ2PS,
+A_VCVTSD2USI,
+A_VCVTSS2USI,
+A_VCVTTPD2QQ,
+A_VCVTTPD2UDQ,
+A_VCVTTPD2UQQ,
+A_VCVTTPS2QQ,
+A_VCVTTPS2UDQ,
+A_VCVTTPS2UQQ,
+A_VCVTTSD2USI,
+A_VCVTTSS2USI,
+A_VCVTUDQ2PD,
+A_VCVTUDQ2PS,
+A_VCVTUQQ2PD,
+A_VCVTUQQ2PS,
+A_VCVTUSI2SD,
+A_VCVTUSI2SS,
+A_VDBPSADBW,
+A_VEXP2PD,
+A_VEXP2PS,
+A_VEXPANDPD,
+A_VEXPANDPS,
+A_VEXTRACTF32X4,
+A_VEXTRACTF32X8,
+A_VEXTRACTF64X2,
+A_VEXTRACTF64X4,
+A_VEXTRACTI32X4,
+A_VEXTRACTI32X8,
+A_VEXTRACTI64X2,
+A_VEXTRACTI64X4,
+A_VFIXUPIMMPD,
+A_VFIXUPIMMPS,
+A_VFIXUPIMMSD,
+A_VFIXUPIMMSS,
+A_VFPCLASSPD,
+A_VFPCLASSPS,
+A_VFPCLASSSD,
+A_VFPCLASSSS,
+A_VGETEXPPD,
+A_VGETEXPPS,
+A_VGETEXPSD,
+A_VGETEXPSS,
+A_VGETMANTPD,
+A_VGETMANTPS,
+A_VGETMANTSD,
+A_VGETMANTSS,
+A_VINSERTF32X4,
+A_VINSERTF32X8,
+A_VINSERTF64X2,
+A_VINSERTF64X4,
+A_VINSERTI32X4,
+A_VINSERTI32X8,
+A_VINSERTI64X2,
+A_VINSERTI64X4,
+A_VMOVDQA32,
+A_VMOVDQA64,
+A_VMOVDQU16,
+A_VMOVDQU32,
+A_VMOVDQU64,
+A_VMOVDQU8,
+A_VPABSQ,
+A_VPANDD,
+A_VPANDND,
+A_VPANDNQ,
+A_VPANDQ,
+A_VPBLENDMB,
+A_VPBLENDMD,
+A_VPBLENDMQ,
+A_VPBLENDMW,
+A_VPCMPB,
+A_VPCMPD,
+A_VPCMPQ,
+A_VPCMPUB,
+A_VPCMPUD,
+A_VPCMPUQ,
+A_VPCMPUW,
+A_VPCMPW,
+A_VPCOMPRESSD,
+A_VPCOMPRESSQ,
+A_VPCONFLICTD,
+A_VPCONFLICTQ,
+A_VPERMB,
+A_VPERMI2B,
+A_VPERMI2D,
+A_VPERMI2PD,
+A_VPERMI2PS,
+A_VPERMI2Q,
+A_VPERMI2W,
+A_VPERMT2B,
+A_VPERMT2D,
+A_VPERMT2PD,
+A_VPERMT2PS,
+A_VPERMT2Q,
+A_VPERMT2W,
+A_VPERMW,
+A_VPEXPANDD,
+A_VPEXPANDQ,
+A_VPLZCNTD,
+A_VPLZCNTQ,
+A_VPMADD52HUQ,
+A_VPMADD52LUQ,
+A_VPMAXSQ,
+A_VPMAXUQ,
+A_VPMINSQ,
+A_VPMINUQ,
+A_VPMOVB2M,
+A_VPMOVD2M,
+A_VPMOVDB,
+A_VPMOVDW,
+A_VPMOVM2B,
+A_VPMOVM2D,
+A_VPMOVM2Q,
+A_VPMOVM2W,
+A_VPMOVQ2M,
+A_VPMOVQB,
+A_VPMOVQD,
+A_VPMOVQW,
+A_VPMOVSDB,
+A_VPMOVSDW,
+A_VPMOVSQB,
+A_VPMOVSQD,
+A_VPMOVSQW,
+A_VPMOVSWB,
+A_VPMOVUSDB,
+A_VPMOVUSDW,
+A_VPMOVUSQB,
+A_VPMOVUSQD,
+A_VPMOVUSQW,
+A_VPMOVUSWB,
+A_VPMOVW2M,
+A_VPMOVWB,
+A_VPMULLQ,
+A_VPMULTISHIFTQB,
+A_VPORD,
+A_VPORQ,
+A_VPROLD,
+A_VPROLQ,
+A_VPROLVD,
+A_VPROLVQ,
+A_VPRORD,
+A_VPRORQ,
+A_VPRORVD,
+A_VPRORVQ,
+A_VPSCATTERDD,
+A_VPSCATTERDQ,
+A_VPSCATTERQD,
+A_VPSCATTERQQ,
+A_VPSLLVW,
+A_VPSRAQ,
+A_VPSRAVQ,
+A_VPSRAVW,
+A_VPSRLVW,
+A_VPTERNLOGD,
+A_VPTERNLOGQ,
+A_VPTESTMB,
+A_VPTESTMD,
+A_VPTESTMQ,
+A_VPTESTMW,
+A_VPTESTNMB,
+A_VPTESTNMD,
+A_VPTESTNMQ,
+A_VPTESTNMW,
+A_VPXORD,
+A_VPXORQ,
+A_VRANGEPD,
+A_VRANGEPS,
+A_VRANGESD,
+A_VRANGESS,
+A_VRCP14PD,
+A_VRCP14PS,
+A_VRCP14SD,
+A_VRCP14SS,
+A_VRCP28PD,
+A_VRCP28PS,
+A_VRCP28SD,
+A_VRCP28SS,
+A_VREDUCEPD,
+A_VREDUCEPS,
+A_VREDUCESD,
+A_VREDUCESS,
+A_VRNDSCALEPD,
+A_VRNDSCALEPS,
+A_VRNDSCALESD,
+A_VRNDSCALESS,
+A_VRSQRT14PD,
+A_VRSQRT14PS,
+A_VRSQRT14SD,
+A_VRSQRT14SS,
+A_VRSQRT28PD,
+A_VRSQRT28PS,
+A_VRSQRT28SD,
+A_VRSQRT28SS,
+A_VSCALEFPD,
+A_VSCALEFPS,
+A_VSCALEFSD,
+A_VSCALEFSS,
+A_VSCATTERDPD,
+A_VSCATTERDPS,
+A_VSCATTERQPD,
+A_VSCATTERQPS,
+A_VSHUFF32X4,
+A_VSHUFF64X2,
+A_VSHUFI32X4,
+A_VSHUFI64X2
 );

+ 281 - 1
compiler/i8086/i8086prop.inc

@@ -787,6 +787,8 @@
 (Ch: [Ch_Wop2, Ch_Rop1]),
 (Ch: [Ch_Wop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
@@ -876,7 +878,7 @@
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
-(Ch: [Ch_All]),
+(Ch: [Ch_All, Ch_None]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
@@ -1137,5 +1139,283 @@
 (Ch: [Ch_Wop1, Ch_WFlags]),
 (Ch: [Ch_Wop1, Ch_WFlags]),
 (Ch: [Ch_WEAX, Ch_WEDX, Ch_RECX]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
 (Ch: [Ch_All])
 );

+ 16764 - 3296
compiler/i8086/i8086tab.inc

@@ -8760,57 +8760,127 @@
   (
     opcode  : A_VADDPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VADDPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#88#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VADDPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VADDPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#88#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VADDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#88#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VADDSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VADDSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#88#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#88#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VADDSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#88#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#88#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VADDSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#88#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#88#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
@@ -8845,29 +8915,29 @@
     opcode  : A_VAESDEC;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#222#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#222#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESDECLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#223#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#223#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESENC;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#220#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#220#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESENCLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#221#61#80;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#241#242#249#1#221#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VAESIMC;
@@ -8886,58 +8956,170 @@
   (
     opcode  : A_VANDNPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDNPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VANDNPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDNPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#85#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#85#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDNPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#85#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VANDPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VANDPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
     opcode  : A_VANDPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#84#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#84#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VANDPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#84#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VBLENDPD;
@@ -9005,45 +9187,73 @@
   (
     opcode  : A_VBROADCASTSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#25#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#25#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VBROADCASTSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#25#72;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#25#72;
     flags   : [if_avx2]
   ),
   (
-    opcode  : A_VBROADCASTSS;
+    opcode  : A_VBROADCASTSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#24#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#25#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VBROADCASTSD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#25#72;
+    flags   : [if_avx512]
   ),
   (
     opcode  : A_VBROADCASTSS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#24#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#24#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VBROADCASTSS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#24#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#24#72;
     flags   : [if_avx2]
   ),
   (
     opcode  : A_VBROADCASTSS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#24#72;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#24#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VBROADCASTSS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#24#72;
     flags   : [if_avx2]
   ),
+  (
+    opcode  : A_VBROADCASTSS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#233#241#249#1#24#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VBROADCASTSS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#24#72;
+    flags   : [if_avx512]
+  ),
   (
     opcode  : A_VCMPEQPS;
     ops     : 3;
@@ -9940,6 +10150,55 @@
     code    : #241#242#244#248#1#194#61#80#1#31;
     flags   : [if_avx,if_sandybridge]
   ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
   (
     opcode  : A_VCMPPD;
     ops     : 4;
@@ -9954,6 +10213,55 @@
     code    : #241#242#244#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#244#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#194#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCMPPS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
   (
     opcode  : A_VCMPPS;
     ops     : 4;
@@ -9971,28 +10279,56 @@
   (
     opcode  : A_VCMPSD;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    optypes : (ot_kreg_m,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #220#232#234#248#1#194#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCMPSD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #220#232#234#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCMPSD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
     code    : #220#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCMPSD;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
     code    : #220#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCMPSS;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    optypes : (ot_kreg_m,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #219#232#248#1#194#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCMPSS;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #219#232#248#1#194#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCMPSS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
     code    : #219#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCMPSS;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
     code    : #219#242#248#1#194#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
@@ -10000,5131 +10336,18263 @@
     opcode  : A_VCOMISD;
     ops     : 2;
     optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#248#1#47#72;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#234#241#242#248#1#47#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VCOMISD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#47#72;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#47#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCOMISS;
     ops     : 2;
     optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #242#248#1#47#72;
-    flags   : [if_avx,if_sandybridge]
+    code    : #232#242#248#1#47#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
     opcode  : A_VCOMISS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#47#72;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#242#248#1#47#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #219#242#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #219#232#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#230#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#242#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#248#1#230#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
   ),
   (
     opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #219#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
-    opcode  : A_VCVTDQ2PS;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#91#72;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTDQ2PS;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#244#248#1#230#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
   ),
   (
-    opcode  : A_VCVTPD2DQ;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #220#242#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #219#232#233#248#1#230#72;
+    flags   : [if_avx512,if_thv]
   ),
   (
-    opcode  : A_VCVTPD2DQ;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #220#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #219#232#233#248#1#230#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTPD2PS;
+    opcode  : A_VCVTDQ2PD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#233#248#1#230#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
   ),
   (
-    opcode  : A_VCVTPD2PS;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#242#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2DQ;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2DQ;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#242#244#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2PD;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #242#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2PD;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTPS2PD;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#244#248#1#90#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTDQ2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#248#1#91#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTPD2DQ;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTPD2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#243#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #220#232#234#242#244#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SI;
+    opcode  : A_VCVTPD2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#243#248#1#45#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTSD2SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#90#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#248#1#230#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
   ),
   (
-    opcode  : A_VCVTSD2SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#90#61#80;
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#230#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#234#242#244#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTSI2SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #220#242#248#1#42#61#80;
-    flags   : [if_avx,if_sandybridge,if_sd]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTSI2SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #219#242#248#1#42#61#80;
-    flags   : [if_avx,if_sandybridge,if_sd]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#90#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#230#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTSS2SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#90#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPD2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#45#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#243#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#90#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
   ),
   (
-    opcode  : A_VCVTSS2SI;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#243#248#1#45#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#90#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
   ),
   (
-    opcode  : A_VCVTTPD2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#230#72;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VCVTTPD2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#230#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#90#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VCVTTPS2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#90#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
   ),
   (
-    opcode  : A_VCVTTPS2DQ;
+    opcode  : A_VCVTPD2PS;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#91#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#90#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#19#72;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#19#72;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#243#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#19#72;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VCVTTSD2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#243#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#19#72;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#19#72;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPH2PS;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#19#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPS2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#243#248#1#44#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VCVTTSS2SI;
+    opcode  : A_VCVTPS2DQ;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#243#248#1#44#72;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#248#1#91#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VDIVPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#242#244#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VDIVPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#94#61#80;
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#242#244#248#1#91#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VDIVPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VDIVSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2DQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#241#248#1#91#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VDIVSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#94#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#242#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
-    opcode  : A_VDPPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#65#61#80#23;
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VDPPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#64#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#90#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
   ),
   (
-    opcode  : A_VDPPS;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#64#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#242#244#248#1#90#72;
+    flags   : [if_avx,if_sandybridge,if_thv]
   ),
   (
-    opcode  : A_VEXTRACTF128;
-    ops     : 3;
-    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#25#65#22;
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#90#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VEXTRACTPS;
-    ops     : 3;
-    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#23#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#90#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
   ),
   (
-    opcode  : A_VHADDPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#248#1#90#72;
+    flags   : [if_avx512,if_thv]
   ),
   (
-    opcode  : A_VHADDPD;
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#248#1#90#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#90#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#250#1#29#65#22;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VHADDPS;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #220#242#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem256_m,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#29#65#22;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VHADDPS;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #220#242#244#248#1#124#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#29#65#22;
+    flags   : [if_avx,if_thvm]
   ),
   (
-    opcode  : A_VHSUBPD;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#29#65#22;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VHSUBPD;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#250#1#29#65#22;
+    flags   : [if_avx]
   ),
   (
-    opcode  : A_VHSUBPS;
+    opcode  : A_VCVTPS2PH;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #220#242#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VHSUBPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #220#242#244#248#1#125#61#80;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VINSERTF128;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#24#61#80#23;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VINSERTPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#33#61#80#23;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VINSERTPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#33#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#29#65#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VLDDQU;
+    opcode  : A_VCVTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #220#242#248#1#240#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#242#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VLDDQU;
+    opcode  : A_VCVTSD2SI;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
-    code    : #220#242#244#248#1#240#72;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#242#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VLDMXCSR;
-    ops     : 1;
-    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
-    code    : #242#248#1#174#130;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTSD2SI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VMASKMOVDQU;
+    opcode  : A_VCVTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#247#72;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSD2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#47#61#66;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#90#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSD2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#47#61#66;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#90#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSI2SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#244#249#1#45#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_reg32,ot_none);
+    code    : #220#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd]
   ),
   (
-    opcode  : A_VMASKMOVPD;
+    opcode  : A_VCVTSI2SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#249#1#45#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #220#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSI2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#46#61#66;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_reg32,ot_none);
+    code    : #219#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSI2SS;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#46#61#66;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#42#61#80;
+    flags   : [if_avx,if_sandybridge,if_sd,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSS2SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#244#249#1#44#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#90#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
   ),
   (
-    opcode  : A_VMASKMOVPS;
+    opcode  : A_VCVTSS2SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#249#1#44#61#80;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #219#232#242#248#1#90#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMAXPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#242#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMAXPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#95#61#80;
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#242#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMAXPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#45#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMAXPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#95#61#80;
+    opcode  : A_VCVTSS2SI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#45#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMAXSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMAXSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMAXSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#230#72;
+    flags   : [if_avx,if_sandybridge,if_avx512]
   ),
   (
-    opcode  : A_VMAXSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#95#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#230#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
   ),
   (
-    opcode  : A_VMINPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#230#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
   ),
   (
-    opcode  : A_VMINPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#93#61#80;
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#230#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMINPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMINPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#230#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
   ),
   (
-    opcode  : A_VMINSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPD2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#230#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMINSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPS2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#242#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMINSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPS2DQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMINSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#93#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VCVTTPS2DQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#91#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#41#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #219#232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#233#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVAPD;
+    opcode  : A_VCVTTPS2DQ;
     ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#41#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #219#232#233#248#1#91#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#242#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#41#65;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#242#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#40#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f64]
   ),
   (
-    opcode  : A_VMOVAPS;
+    opcode  : A_VCVTTSD2SI;
     ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#41#65;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#234#242#243#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVD;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #241#242#248#1#110#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#242#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMOVD;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#126#65;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#242#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDDUP;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #220#242#244#248#1#18#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#44#72;
+    flags   : [if_avx,if_sandybridge,if_t1f32]
   ),
   (
-    opcode  : A_VMOVDDUP;
+    opcode  : A_VCVTTSS2SI;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#18#72;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#234#242#243#248#1#44#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDDUP;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#18#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#127#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#111#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#127#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVDQA;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#111#72;
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#94#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#94#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VDIVPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#94#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VDIVSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VDIVSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#94#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#111#72;
+    opcode  : A_VDIVSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#94#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VDIVSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#94#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#111#72;
+    opcode  : A_VDPPD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#65#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#127#65;
+    opcode  : A_VDPPS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#64#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVDQU;
-    ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #219#242#244#248#1#127#65;
+    opcode  : A_VDPPS;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#64#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVHLPS;
+    opcode  : A_VEXTRACTF128;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #242#248#1#18#61#80;
+    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#25#65#22;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVHPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#23#65;
+    opcode  : A_VEXTRACTPS;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#23#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VEXTRACTPS;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#23#65#22;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVHPD;
+    opcode  : A_VEXTRACTPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #241#242#248#1#22#61#80;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#23#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VHADDPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVHPS;
+    opcode  : A_VHADDPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #242#248#1#22#61#80;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVHPS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#23#65;
+    opcode  : A_VHADDPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #220#242#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVLHPS;
+    opcode  : A_VHADDPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #242#248#1#22#61#80;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #220#242#244#248#1#124#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVLPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#19#65;
+    opcode  : A_VHSUBPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#125#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVLPD;
+    opcode  : A_VHSUBPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #241#242#248#1#18#61#80;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#125#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVLPS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#19#65;
+    opcode  : A_VHSUBPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #220#242#248#1#125#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVLPS;
+    opcode  : A_VHSUBPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #242#248#1#18#61#80;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #220#242#244#248#1#125#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
-    ops     : 2;
-    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#80#72;
+    opcode  : A_VINSERTF128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#24#61#80#23;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
+    opcode  : A_VINSERTPS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#33#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VINSERTPS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#33#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VLDDQU;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#80#72;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #220#242#248#1#240#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
+    opcode  : A_VLDDQU;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#80#72;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #220#242#244#248#1#240#72;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPD;
+    opcode  : A_VLDMXCSR;
+    ops     : 1;
+    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+    code    : #242#248#1#174#130;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVDQU;
     ops     : 2;
-    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#80#72;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#247#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVPD;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#47#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVPD;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#47#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#244#249#1#45#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#249#1#45#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVPS;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#46#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVPS;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#46#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMASKMOVPS;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#244#249#1#44#61#80;
     flags   : [if_avx,if_sandybridge]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#80#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VMASKMOVPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#249#1#44#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#234#241#248#1#95#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#95#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMAXPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#248#1#95#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMAXSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMAXSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #220#232#234#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMAXSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMAXSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #219#232#242#248#1#95#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#234#241#248#1#93#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#93#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMINPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_none);
+    code    : #232#233#248#1#93#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMINSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMINSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #220#232#234#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMINSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMINSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #219#232#242#248#1#93#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#41#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#40#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#40#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#40#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVAPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#41#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#41#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#242#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#40#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#40#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#41#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#40#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#41#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVAPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#40#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVD;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#248#1#126#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#248#1#110#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tmddup]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#18#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#234#242#244#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tmddup]
+  ),
+  (
+    opcode  : A_VMOVDDUP;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#18#72;
+    flags   : [if_avx512,if_tmddup]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQA;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #219#242#244#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #219#242#248#1#111#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
+    code    : #219#242#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVDQU;
+    ops     : 2;
+    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
+    code    : #219#242#244#248#1#127#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVHLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#242#248#1#18#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVHPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#23#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVHPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#248#1#22#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVHPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#23#65;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#242#248#1#22#61#80;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVLHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#242#248#1#22#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVLPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#19#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVLPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#248#1#18#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVLPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#19#65;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#242#248#1#18#61#80;
+    flags   : [if_avx,if_sandybridge,if_t2]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPD;
+    ops     : 2;
+    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+    code    : #242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+    code    : #242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+    code    : #242#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVMSKPS;
+    ops     : 2;
+    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+    code    : #242#244#248#1#80#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVNTDQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#248#1#231#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#242#244#248#1#231#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits512,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#248#1#231#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQA;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#249#1#42#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQA;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#42#72;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTDQA;
+    ops     : 2;
+    optypes : (ot_zmmreg,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#42#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits512,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#43#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#43#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVNTPS;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits512,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#43#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#214#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #219#232#234#242#248#1#126#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#242#248#1#126#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVQ;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#214#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #220#232#234#242#248#1#17#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #220#232#234#242#248#1#16#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSHDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#242#248#1#22#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSHDUP;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#22#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSHDUP;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#248#1#22#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSLDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#242#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSLDUP;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#242#244#248#1#18#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSLDUP;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#248#1#18#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#232#242#248#1#17#61#66;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#232#242#248#1#16#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#17#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#17#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVUPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#16#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#17#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#242#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#242#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#242#244#248#1#17#65;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#242#244#248#1#16#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#248#1#17#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMOVUPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#248#1#16#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMPSADBW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#66#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMPSADBW;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#66#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#89#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#89#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VMULPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#89#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VMULSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMULSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VMULSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VMULSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#89#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#86#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#86#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#242#249#1#28#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#28#72;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#28#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#242#249#1#30#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#30#72;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#30#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#242#249#1#29#72;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#29#72;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#29#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#107#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#107#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#107#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKSSWB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#99#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKSSWB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#99#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKSSWB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#99#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#43#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#43#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#43#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPACKUSWB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#103#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKUSWB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#103#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPACKUSWB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#103#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#252#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#252#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#252#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#254#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#254#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#254#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#212#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#212#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#212#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPADDSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#236#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#236#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#236#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#237#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#237#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#237#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#220#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#220#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#220#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#221#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#221#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDUSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#221#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#253#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#253#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPADDW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#253#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPALIGNR;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#15#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPALIGNR;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#242#244#250#1#15#61#80#23;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPALIGNR;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#15#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAND;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#219#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPAND;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#219#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPANDN;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#223#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPANDN;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#223#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPAVGB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#224#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#224#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#224#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#227#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#227#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPAVGW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#227#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDVB;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+    code    : #241#242#250#1#76#61#80#247;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPBLENDVB;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
+    code    : #241#242#244#250#1#76#61#80#247;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBLENDW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#14#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPBLENDW;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#14#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCLMULQDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#68#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPCLMULQDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#68#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCLMULQDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#68#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#116#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#116#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#116#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#116#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQB;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#116#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#118#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#118#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#41#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#41#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#41#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#117#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPEQW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#117#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPESTRI;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#97#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPESTRM;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#96#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#100#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#100#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#100#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#100#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTB;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#100#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#102#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#102#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#102#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#55#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#55#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#55#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#101#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#101#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#101#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#101#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPGTW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#101#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPCMPISTRI;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#99#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPCMPISTRM;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#98#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPERM2F128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#6#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#249#1#13#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#250#1#5#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#249#1#13#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#244#250#1#5#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#13#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#5#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#12#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#4#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#12#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#250#1#4#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#12#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMILPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#4#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#20#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#20#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#20#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#20#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRB;
+    ops     : 3;
+    optypes : (ot_reg8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#20#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXTRD;
+    ops     : 3;
+    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#22#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRQ;
+    ops     : 3;
+    optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#250#1#22#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#197#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#197#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#250#1#21#65#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPEXTRW;
+    ops     : 3;
+    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#197#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#2#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#2#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHADDSW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#3#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDSW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#3#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHADDW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#1#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHADDW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#1#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHMINPOSUW;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#65#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#6#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#6#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHSUBSW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#7#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBSW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#7#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPHSUBW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#5#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPHSUBW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#5#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPINSRB;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#32#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPINSRB;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits8,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#32#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#242#250#1#34#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRQ;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#242#243#250#1#34#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits16,ot_immediate or ot_bits8);
+    code    : #232#241#242#248#1#196#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VPINSRW;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
+    code    : #232#241#242#248#1#196#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMADDUBSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#4#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDUBSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#4#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDUBSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#4#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDWD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#245#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDWD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#245#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMADDWD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#245#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#60#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#60#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#60#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#61#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#61#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#238#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#238#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#238#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#222#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#222#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#222#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#63#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#63#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMAXUW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#62#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#62#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMAXUW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#62#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#56#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#56#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#56#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#57#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#57#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#234#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#234#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#234#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#218#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#218#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#218#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#59#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#59#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMINUW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#58#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#58#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMINUW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#58#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#215#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
+    code    : #241#242#248#1#215#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#215#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVMSKB;
+    ops     : 2;
+    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
+    code    : #241#242#244#248#1#215#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#33#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#33#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#33#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#33#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#33#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#33#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#249#1#34#72;
+    flags   : [if_avx,if_sandybridge,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#34#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#34#72;
+    flags   : [if_avx2,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#34#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#34#72;
+    flags   : [if_avx512,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVSXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#34#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#32#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#32#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#32#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#32#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#32#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#32#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#37#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#37#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#37#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#37#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#37#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#37#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#35#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#35#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#35#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#35#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#35#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#35#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#36#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#36#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#36#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#36#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#36#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVSXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#36#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#49#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#49#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#49#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#49#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#49#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#49#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#249#1#50#72;
+    flags   : [if_avx,if_sandybridge,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#50#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#50#72;
+    flags   : [if_avx2,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#50#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#50#72;
+    flags   : [if_avx512,if_tovm]
+  ),
+  (
+    opcode  : A_VPMOVZXBQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#50#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#48#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#48#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#48#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#48#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#48#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXBW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#48#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#53#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#53#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#53#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#53#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#53#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#53#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#249#1#51#72;
+    flags   : [if_avx,if_sandybridge,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#51#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#51#72;
+    flags   : [if_avx2,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#51#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#51#72;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#51#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#52#72;
+    flags   : [if_avx,if_sandybridge,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#52#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#52#72;
+    flags   : [if_avx2,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#52#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#52#72;
+    flags   : [if_avx512,if_tqvm]
+  ),
+  (
+    opcode  : A_VPMOVZXWQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#52#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#249#1#40#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#249#1#40#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#40#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULHRSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#11#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHRSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#11#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHRSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#11#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHUW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#228#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHUW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#228#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHUW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#228#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#229#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#229#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULHW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#229#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#64#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#64#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#213#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#213#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#213#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#244#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#244#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMULUDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#244#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOR;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#235#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPOR;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#235#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSADBW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#246#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSADBW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#246#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSADBW;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#246#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#0#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#0#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#0#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#112#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#112#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#112#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHUFHW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #219#232#242#248#1#112#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFHW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #219#232#242#244#248#1#112#72#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFHW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #219#232#233#248#1#112#72#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #220#232#242#248#1#112#72#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #220#232#242#244#248#1#112#72#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #220#232#233#248#1#112#72#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSIGNB;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#8#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSIGNB;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#8#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSIGND;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#10#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSIGND;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#10#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSIGNW;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#249#1#9#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSIGNW;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#249#1#9#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#114#60#142#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#242#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#114#60#142#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#242#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#242#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#115#60#143#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#115#60#143#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#115#60#143#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#243#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#248#1#115#60#142#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#243#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#244#248#1#115#60#142#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#234#241#248#1#243#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#142#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#241#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#113#60#142#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#241#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#113#60#142#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#241#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#114#60#140#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#226#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#114#60#140#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#226#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#113#60#140#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#225#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#113#60#140#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#225#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#225#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#114#60#138#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#210#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#210#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#114#60#138#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#210#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#115#60#139#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#115#60#139#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#115#60#139#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#115#60#139#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#115#60#139#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#211#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#248#1#115#60#138#22;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#244#248#1#115#60#138#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#211#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#234#241#248#1#211#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#115#60#138#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#248#1#113#60#138#22;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#209#61#80;
+    flags   : [if_avx,if_sandybridge,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#242#244#248#1#113#60#138#22;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#244#248#1#209#61#80;
+    flags   : [if_avx2,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#241#248#1#209#61#80;
+    flags   : [if_avx512,if_tmem128]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#248#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#248#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#248#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#250#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#250#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#250#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#251#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#251#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#251#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSUBSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#232#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#232#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#232#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#233#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#233#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#233#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#216#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#216#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#216#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#217#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#217#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBUSW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#217#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#249#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#249#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSUBW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#249#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPTEST;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#249#1#23#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPTEST;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#23#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPUNPCKHBW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#104#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHBW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#104#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHBW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#104#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#106#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#106#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#106#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#109#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#109#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#109#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKHWD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#105#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHWD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#105#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKHWD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#105#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLBW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#96#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLBW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#96#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLBW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#96#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#98#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#98#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#98#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#108#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#108#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLQDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#108#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPUNPCKLWD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#248#1#97#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLWD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#248#1#97#61#80;
+    flags   : [if_avx2,if_tfvm]
+  ),
+  (
+    opcode  : A_VPUNPCKLWD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#97#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPXOR;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #241#242#248#1#239#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPXOR;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #241#242#244#248#1#239#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VRCPPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #242#248#1#83#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRCPPS;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #242#244#248#1#83#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRCPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#242#248#1#83#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRCPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#242#248#1#83#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#9#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#9#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#8#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#8#72#22;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#11#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#11#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#10#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VROUNDSS;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#10#61#80#23;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #242#244#248#1#82#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #242#248#1#82#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#242#248#1#82#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VRSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #219#242#248#1#82#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#242#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#242#244#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#242#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#242#244#248#1#198#61#80#23;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#244#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSHUFPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#248#1#198#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#242#244#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#81#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#242#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#242#244#248#1#81#72;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#81#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSQRTPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#248#1#81#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VSQRTSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSQRTSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSQRTSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#81#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSTMXCSR;
+    ops     : 1;
+    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
+    code    : #242#248#1#174#131;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#92#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VSUBPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#248#1#92#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VSUBSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #220#232#234#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSUBSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #220#232#234#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VSUBSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #219#232#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VSUBSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #219#232#242#248#1#92#61#80;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VTESTPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#15#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VTESTPD;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#249#1#15#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VTESTPS;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
+    code    : #241#242#244#249#1#14#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VTESTPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
+    code    : #241#242#249#1#14#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VUCOMISD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VUCOMISD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#234#241#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VUCOMISS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge,if_t1s]
+  ),
+  (
+    opcode  : A_VUCOMISS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #232#242#248#1#46#72;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#21#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKHPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#20#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VUNPCKLPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#244#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#242#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#242#244#248#1#87#61#80;
+    flags   : [if_avx,if_sandybridge,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#244#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VXORPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#248#1#87#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VZEROALL;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #242#244#248#1#119;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VZEROUPPER;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #242#248#1#119;
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_ANDN;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #242#249#1#242#61#80;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BEXTR;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #242#249#1#247#62#72;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BLSI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #242#249#1#243#60#139;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BLSMSK;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #242#249#1#243#60#138;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_BLSR;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #242#249#1#243#60#137;
+    flags   : [if_bmi1,if_prot]
+  ),
+  (
+    opcode  : A_TZCNT;
+    ops     : 2;
+    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_rm_gpr,ot_none,ot_none);
+    code    : #208#219#2#15#188#72;
+    flags   : [if_bmi1,if_sm]
+  ),
+  (
+    opcode  : A_BZHI;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #242#249#1#245#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_MULX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #220#242#249#1#246#61#80;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_PDEP;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #220#242#249#1#245#61#80;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_PEXT;
+    ops     : 3;
+    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #219#242#249#1#245#61#80;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_RORX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8,ot_none);
+    code    : #220#242#250#1#240#72#22;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_SARX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #219#242#249#1#247#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_SHLX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #241#242#249#1#247#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_SHRX;
+    ops     : 3;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
+    code    : #220#242#249#1#247#62#72;
+    flags   : [if_bmi2,if_prot]
+  ),
+  (
+    opcode  : A_ADCX;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #241#3#15#56#246#72;
+    flags   : [if_adx]
+  ),
+  (
+    opcode  : A_ADOX;
+    ops     : 2;
+    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
+    code    : #219#3#15#56#246#72;
+    flags   : [if_adx]
+  ),
+  (
+    opcode  : A_VBROADCASTI128;
+    ops     : 2;
+    optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #241#242#244#249#1#90#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VEXTRACTI128;
+    ops     : 3;
+    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#244#250#1#57#65#22;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VINSERTI128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#56#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBLENDD;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#2#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBLENDD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #241#242#250#1#2#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #232#241#242#249#1#120#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#120#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg8,ot_none,ot_none);
+    code    : #232#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#120#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#120#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg8,ot_none,ot_none);
+    code    : #232#241#244#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #232#233#241#249#1#120#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg8,ot_none,ot_none);
+    code    : #232#233#241#249#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#249#1#88#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#88#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#88#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#88#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#244#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #232#233#241#249#1#88#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#233#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#88#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#249#1#89#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#249#1#89#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#234#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#89#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#242#244#249#1#89#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#89#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#124#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#249#1#121#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#249#1#121#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#121#72;
+    flags   : [if_avx2,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#242#244#249#1#121#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#241#244#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#241#244#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#241#244#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #232#233#241#249#1#121#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg16,ot_none,ot_none);
+    code    : #232#233#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg32,ot_none,ot_none);
+    code    : #232#233#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_reg64,ot_none,ot_none);
+    code    : #232#233#241#249#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPBROADCASTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPERM2I128;
+    ops     : 4;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #241#242#244#250#1#70#61#80#23;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#54#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#244#250#1#1#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#244#250#1#1#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#1#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#1#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#1#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#22#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#22#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#242#243#244#250#1#0#72#22;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#0#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#54#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#0#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPERMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#0#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#244#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVD;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
+    code    : #241#242#243#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#142#61#66;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPMASKMOVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
+    code    : #241#242#243#244#249#1#140#61#80;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#71#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSLLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#71#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#70#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#70#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRAVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#69#61#80;
+    flags   : [if_avx2,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSRLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#69#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#234#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_xmem32,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#146#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERDPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#146#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
+    code    : #241#242#244#249#1#147#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGATHERQPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#147#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
+    code    : #241#242#244#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDD;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_xmem64,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#144#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_ymem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#144#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
+    code    : #241#242#244#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem32,ot_none,ot_none);
+    code    : #232#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_ymem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQD;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_zmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
+    code    : #241#242#243#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_m,ot_xmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
+    code    : #241#242#243#244#249#1#145#62#72;
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_m,ot_ymem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPGATHERQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_m,ot_zmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#145#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_ADD4S;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #2#15#32;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_BRKEM;
+    ops     : 1;
+    optypes : (ot_immediate,ot_none,ot_none,ot_none);
+    code    : #2#15#255#20;
+    flags   : [if_nec,if_sb,if_16bitonly]
+  ),
+  (
+    opcode  : A_CLR1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#18#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_CLR1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#19#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_CLR1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
+    code    : #2#15#26#128#21;
+    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+  ),
+  (
+    opcode  : A_CLR1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
+    code    : #2#15#27#128#21;
+    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+  ),
+  (
+    opcode  : A_CMP4S;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #2#15#38;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_EXT;
+    ops     : 2;
+    optypes : (ot_reg8,ot_reg8,ot_none,ot_none);
+    code    : #2#15#51#65;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_EXT;
+    ops     : 2;
+    optypes : (ot_reg8,ot_immediate,ot_none,ot_none);
+    code    : #2#15#59#128#21;
+    flags   : [if_nec,if_sb,if_imm4,if_16bitonly]
+  ),
+  (
+    opcode  : A_NEC_INS;
+    ops     : 2;
+    optypes : (ot_reg8,ot_reg8,ot_none,ot_none);
+    code    : #2#15#49#65;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_NEC_INS;
+    ops     : 2;
+    optypes : (ot_reg8,ot_immediate,ot_none,ot_none);
+    code    : #2#15#57#128#21;
+    flags   : [if_nec,if_sb,if_imm4,if_16bitonly]
+  ),
+  (
+    opcode  : A_NOT1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#22#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_NOT1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#23#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_NOT1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
+    code    : #2#15#30#128#21;
+    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+  ),
+  (
+    opcode  : A_NOT1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
+    code    : #2#15#31#128#21;
+    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+  ),
+  (
+    opcode  : A_REPC;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #1#101;
+    flags   : [if_nec,if_pre,if_16bitonly]
+  ),
+  (
+    opcode  : A_REPNC;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #1#100;
+    flags   : [if_nec,if_pre,if_16bitonly]
+  ),
+  (
+    opcode  : A_ROL4;
+    ops     : 1;
+    optypes : (ot_rm_gpr or ot_bits8,ot_none,ot_none,ot_none);
+    code    : #2#15#40#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_ROR4;
+    ops     : 1;
+    optypes : (ot_rm_gpr or ot_bits8,ot_none,ot_none,ot_none);
+    code    : #2#15#42#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_SET1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#20#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_SET1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#21#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_SET1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
+    code    : #2#15#28#128#21;
+    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+  ),
+  (
+    opcode  : A_SET1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
+    code    : #2#15#29#128#21;
+    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+  ),
+  (
+    opcode  : A_SUB4S;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #2#15#34;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_TEST1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#16#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_TEST1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
+    code    : #2#15#17#128;
+    flags   : [if_nec,if_16bitonly]
+  ),
+  (
+    opcode  : A_TEST1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
+    code    : #2#15#24#128#21;
+    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+  ),
+  (
+    opcode  : A_TEST1;
+    ops     : 2;
+    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
+    code    : #2#15#25#128#21;
+    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+  ),
+  (
+    opcode  : A_VFMADDPD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
+    code    : #241#242#250#1#105#61#80#247;
+    flags   : [if_fma4]
+  ),
+  (
+    opcode  : A_VFMADDPD;
+    ops     : 4;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_xmmrm);
+    code    : #241#242#250#243#1#105#61#88#246;
+    flags   : [if_fma4]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#152#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#152#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#152#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#152#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#153#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#153#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#153#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#153#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#168#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#168#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#168#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#168#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#169#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#169#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#169#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#169#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#184#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#184#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#184#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#184#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#185#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#185#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#185#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#185#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#150#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#150#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#150#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#150#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#166#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#166#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#166#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#166#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#182#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#182#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#182#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMADDSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#182#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#154#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#154#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#154#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#154#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#155#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#155#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#155#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#155#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#170#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#170#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#170#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#170#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#171#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#171#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#171#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#171#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#186#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#186#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#186#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#186#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#187#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#187#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#187#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#187#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#151#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#151#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#151#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#151#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#167#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#167#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#167#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#167#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#183#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#183#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#183#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFMSUBADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#183#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#156#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#156#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#156#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#156#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#157#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#157#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#157#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#157#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#172#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#172#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#172#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#172#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#173#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#173#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#173#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#173#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#188#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#188#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#188#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#188#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #241#242#243#249#1#189#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#189#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #241#242#249#1#189#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMADD231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#189#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#158#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#158#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#158#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#158#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#159#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB132SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#159#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#159#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB132SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#159#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#174#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#174#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#174#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB213PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#174#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#175#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB213SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#175#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#175#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB213SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#175#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#242#243#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#242#243#244#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#190#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#242#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#190#61#80;
+    flags   : [if_fma,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#190#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231PS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#190#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFNMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#242#243#249#1#191#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB231SD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#242#243#249#1#191#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_VFNMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#242#249#1#191#61#80;
+    flags   : [if_fma]
+  ),
+  (
+    opcode  : A_VFNMSUB231SS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#242#249#1#191#61#80;
+    flags   : [if_fma,if_t1s]
+  ),
+  (
+    opcode  : A_XACQUIRE;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #1#242;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XRELEASE;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #1#243;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XBEGIN;
+    ops     : 1;
+    optypes : (ot_memory,ot_none,ot_none,ot_none);
+    code    : #208#2#199#248#52;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XABORT;
+    ops     : 1;
+    optypes : (ot_immediate,ot_none,ot_none,ot_none);
+    code    : #2#198#248#20;
+    flags   : [if_tsx,if_sb]
+  ),
+  (
+    opcode  : A_XEND;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #3#15#1#213;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_XTEST;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #3#15#1#214;
+    flags   : [if_tsx]
+  ),
+  (
+    opcode  : A_RDRAND;
+    ops     : 1;
+    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
+    code    : #208#2#15#199#134;
+    flags   : [if_rand]
+  ),
+  (
+    opcode  : A_RDSEED;
+    ops     : 1;
+    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
+    code    : #208#2#15#199#135;
+    flags   : [if_rand]
+  ),
+  (
+    opcode  : A_XGETBV;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none,ot_none);
+    code    : #3#15#1#208;
+    flags   : [if_xsave]
+  ),
+  (
+    opcode  : A_PREFETCHWT1;
+    ops     : 1;
+    optypes : (ot_memory,ot_none,ot_none,ot_none);
+    code    : #2#15#13#130;
+    flags   : [if_prefetchwt1]
+  ),
+  (
+    opcode  : A_KADDB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KADDD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KADDQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KADDW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#74#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDNB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDND;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDNQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDNW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#66#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KANDW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#65#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits8,ot_none,ot_none);
+    code    : #241#242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg32,ot_none,ot_none);
+    code    : #241#242#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits8,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVB;
+    ops     : 2;
+    optypes : (ot_reg32,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #241#242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg32,ot_none,ot_none);
+    code    : #220#242#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits32,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVD;
+    ops     : 2;
+    optypes : (ot_reg32,ot_kreg,ot_none,ot_none);
+    code    : #220#242#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #242#243#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg64,ot_none,ot_none);
+    code    : #220#242#243#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits64,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVQ;
+    ops     : 2;
+    optypes : (ot_reg64,ot_kreg,ot_none,ot_none);
+    code    : #220#242#243#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #242#248#1#144#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_reg32,ot_none,ot_none);
+    code    : #242#248#1#146#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_memory or ot_bits16,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#145#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KMOVW;
+    ops     : 2;
+    optypes : (ot_reg32,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#147#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KNOTW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#68#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORTESTW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#152#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KORW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#69#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#50#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#51#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#51#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTLW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#50#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#48#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#250#1#49#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#49#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KSHIFTRW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_immediate or ot_bits8,ot_none);
+    code    : #241#242#243#250#1#48#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTB;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTD;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #241#242#243#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTQ;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#243#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KTESTW;
+    ops     : 2;
+    optypes : (ot_kreg,ot_kreg,ot_none,ot_none);
+    code    : #242#248#1#153#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KUNPCKBW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#75#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KUNPCKDQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#75#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KUNPCKWD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#75#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXNORW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#70#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORB;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORD;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #241#242#243#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORQ;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#243#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_KXORW;
+    ops     : 3;
+    optypes : (ot_kreg,ot_kreg,ot_kreg,ot_none);
+    code    : #242#244#248#1#71#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGND;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VALIGNQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#3#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBLENDMPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#101#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#25#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#244#249#1#25#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#25#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#25#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X4;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#244#249#1#26#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#26#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTF32X8;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#27#72;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VBROADCASTF64X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#26#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF64X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#26#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTF64X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#27#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#249#1#89#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#244#249#1#89#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#89#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#233#241#249#1#89#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X4;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#244#249#1#90#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#241#249#1#90#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VBROADCASTI32X8;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#249#1#91#72;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VBROADCASTI64X2;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#90#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI64X2;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#90#72;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VBROADCASTI64X4;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#91#72;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VCOMPRESSPD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPD;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#138#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#138#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#138#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCOMPRESSPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#138#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#123#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#244#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#248#1#121#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#244#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#123#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#123#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#123#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#123#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#123#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#123#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #232#233#241#248#1#123#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#244#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#121#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#121#72;
+    flags   : [if_avx512,if_bcst16,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#121#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#121#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#121#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#121#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#121#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #232#233#241#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#230#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#230#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#244#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#248#1#91#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#248#1#91#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#244#248#1#91#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#244#248#1#91#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#248#1#91#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#248#1#91#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #232#233#234#248#1#91#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#248#1#121#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#248#1#121#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #220#232#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#248#1#121#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#248#1#121#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_er,ot_none,ot_none);
+    code    : #219#232#234#248#1#121#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#248#1#120#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#244#248#1#120#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#244#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#248#1#120#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPD2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#122#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#122#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#122#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2QQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#244#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#248#1#120#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #232#241#248#1#120#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#248#1#120#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#120#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#248#1#120#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#233#241#248#1#120#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#248#1#120#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTTPS2UQQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#248#1#120#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #220#232#234#248#1#120#72;
+    flags   : [if_avx512,if_t1f64]
+  ),
+  (
+    opcode  : A_VCVTTSD2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #220#232#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#248#1#120#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg32,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #219#232#234#248#1#120#72;
+    flags   : [if_avx512,if_t1f32]
+  ),
+  (
+    opcode  : A_VCVTTSS2USI;
+    ops     : 2;
+    optypes : (ot_reg64,ot_xmmreg_sae,ot_none,ot_none);
+    code    : #219#232#234#248#1#120#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #219#232#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#248#1#122#72;
+    flags   : [if_avx512,if_bcst2,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#244#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#244#248#1#122#72;
+    flags   : [if_avx512,if_bcst4,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #219#232#233#248#1#122#72;
+    flags   : [if_avx512,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #219#232#233#248#1#122#72;
+    flags   : [if_avx512,if_bcst8,if_thv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_ymmreg_er,ot_none,ot_none);
+    code    : #219#232#233#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #220#232#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #220#232#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #220#232#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #220#232#233#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #220#232#233#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUDQ2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #220#232#233#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #220#232#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#248#1#122#72;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#122#72;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#122#72;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VCVTUQQ2PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#122#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VCVTUSI2SD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits64,ot_none);
+    code    : #220#232#234#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCVTUSI2SD;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #220#232#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCVTUSI2SS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits64,ot_none);
+    code    : #219#232#234#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VCVTUSI2SS;
+    ops     : 3;
+    optypes : (ot_xmmreg,ot_xmmreg_er,ot_rm_gpr or ot_bits32,ot_none);
+    code    : #219#232#248#1#123#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VDBPSADBW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#66#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VDBPSADBW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#66#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VDBPSADBW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#66#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VEXP2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#200#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXP2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#200#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VEXP2PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#200#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#244#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#136#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VEXPANDPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#136#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#25#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#25#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X8;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#27#65#22;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VEXTRACTF32X8;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#27#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#25#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#25#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#25#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X4;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#27#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTF64X4;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#27#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#57#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#57#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X4;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X8;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#59#65#22;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VEXTRACTI32X8;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#59#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#57#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#57#65#22;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X2;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#57#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X4;
+    ops     : 3;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#59#65#22;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VEXTRACTI64X4;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#59#65#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#84#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#84#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFIXUPIMMPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#84#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#85#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#85#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#85#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VFIXUPIMMSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#85#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst2,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst4,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst8,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#102#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSPS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#102#72#22;
+    flags   : [if_avx512,if_bcst16,if_tfv]
+  ),
+  (
+    opcode  : A_VFPCLASSSD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#103#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFPCLASSSD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_memory or ot_bits64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#103#72#22;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VFPCLASSSS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#103#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VFPCLASSSS;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_memory or ot_bits32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#103#72#22;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#66#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#66#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETEXPPS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#66#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETEXPSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#67#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETEXPSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#234#241#249#1#67#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETEXPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#67#61#80;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETEXPSS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#241#249#1#67#61#80;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#38#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#38#72#22;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VGETMANTPS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#38#72#22;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#39#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETMANTSD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#39#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VGETMANTSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#39#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VGETMANTSS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#39#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VINSERTF32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTF32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTF32X8;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#26#61#80#23;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VINSERTF64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTF64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#24#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTF64X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#26#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTI32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTI32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VINSERTI32X8;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#58#61#80#23;
+    flags   : [if_avx512,if_t8]
+  ),
+  (
+    opcode  : A_VINSERTI64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTI64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#56#61#80#23;
+    flags   : [if_avx512,if_t2]
+  ),
+  (
+    opcode  : A_VINSERTI64X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#58#61#80#23;
+    flags   : [if_avx512,if_t4]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA32;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQA64;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #220#232#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#234#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU16;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #220#232#233#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU32;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #219#232#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#234#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU64;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#234#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #220#232#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_xmmrm_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #220#232#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #220#232#244#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_ymmrm_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #220#232#244#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #220#232#233#248#1#111#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VMOVDQU8;
+    ops     : 2;
+    optypes : (ot_zmmrm_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #220#232#233#248#1#127#65;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPABSQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#31#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDND;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDNQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPANDQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#219#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMB;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMB;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMB;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#100#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPBLENDMW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPBLENDMW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#102#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#31#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCMPUB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPCMPUB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#80#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUB;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#80#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVMSKPS;
-    ops     : 2;
-    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#80#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTDQ;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#231#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTDQ;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#231#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTDQA;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #241#242#249#1#42#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTDQA;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits256,ot_none,ot_none);
-    code    : #241#242#244#249#1#42#72;
-    flags   : [if_avx2]
+    opcode  : A_VPCMPUD;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#43#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTPD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#43#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTPS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#43#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVNTPS;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#43#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#219#248#1#126#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #242#219#248#1#126#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUQ;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#30#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#241#248#1#214#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVQ;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #242#241#248#1#214#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#16#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPUW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#62#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVSD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #220#242#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#17#61#66;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVSD;
-    ops     : 2;
-    optypes : (ot_memory or ot_bits64,ot_xmmreg,ot_none,ot_none);
-    code    : #220#242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCMPW;
+    ops     : 4;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#63#61#80#23;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMOVSHDUP;
+    opcode  : A_VPCOMPRESSD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#22#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VMOVSHDUP;
+    opcode  : A_VPCOMPRESSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#22#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VMOVSLDUP;
+    opcode  : A_VPCOMPRESSD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #219#242#248#1#18#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VMOVSLDUP;
+    opcode  : A_VPCOMPRESSD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #219#242#244#248#1#18#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#139#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#16#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCOMPRESSD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#139#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVSS;
+    opcode  : A_VPCOMPRESSD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #219#242#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#139#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVSS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#17#61#66;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCOMPRESSQ;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VMOVSS;
+    opcode  : A_VPCOMPRESSQ;
     ops     : 2;
-    optypes : (ot_memory or ot_bits32,ot_xmmreg,ot_none,ot_none);
-    code    : #219#242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VMOVUPD;
+    opcode  : A_VPCOMPRESSQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#139#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VMOVUPD;
+    opcode  : A_VPCOMPRESSQ;
     ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#139#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVUPD;
+    opcode  : A_VPCOMPRESSQ;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#139#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVUPD;
+    opcode  : A_VPCOMPRESSQ;
     ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#139#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VMOVUPS;
+    opcode  : A_VPCONFLICTD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPS;
+    opcode  : A_VPCONFLICTD;
     ops     : 2;
-    optypes : (ot_xmmrm,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPS;
+    opcode  : A_VPCONFLICTD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#16#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMOVUPS;
+    opcode  : A_VPCONFLICTD;
     ops     : 2;
-    optypes : (ot_ymmrm,ot_ymmreg,ot_none,ot_none);
-    code    : #242#244#248#1#17#65;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMPSADBW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#66#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMPSADBW;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#66#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VPCONFLICTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPCONFLICTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#196#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VMULSS;
+    opcode  : A_VPERMB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VMULSS;
+    opcode  : A_VPERMB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#89#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VORPD;
+    opcode  : A_VPERMB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#86#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VORPS;
+    opcode  : A_VPERMI2B;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#86#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VORPS;
+    opcode  : A_VPERMI2B;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#86#61#80;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VPABSB;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#28#72;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VPABSB;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#28#72;
-    flags   : [if_avx2]
-  ),
-  (
-    opcode  : A_VPABSD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#30#72;
-    flags   : [if_avx,if_sandybridge]
-  ),
-  (
-    opcode  : A_VPABSD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#30#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPABSW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#29#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMI2B;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPABSW;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#29#72;
-    flags   : [if_avx2]
+    opcode  : A_VPERMI2D;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKSSDW;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#107#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKSSDW;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#107#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKSSWB;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#99#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKSSWB;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#99#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKUSDW;
+    opcode  : A_VPERMI2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#43#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKUSDW;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#43#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKUSWB;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#103#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPACKUSWB;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#103#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDB;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#252#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDB;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#252#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDD;
+    opcode  : A_VPERMI2PD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#254#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDD;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#254#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDQ;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#212#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDQ;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#212#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDSB;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#236#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDSB;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#236#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDSW;
+    opcode  : A_VPERMI2PS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#237#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#119#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDSW;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#237#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDUSB;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#220#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDUSB;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#220#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDUSW;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#221#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDUSW;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#221#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDW;
+    opcode  : A_VPERMI2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#253#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#118#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPADDW;
+    opcode  : A_VPERMI2W;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#253#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPALIGNR;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#15#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMI2W;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPALIGNR;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#15#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VPERMI2W;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#117#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPAND;
+    opcode  : A_VPERMT2B;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#219#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPAND;
+    opcode  : A_VPERMT2B;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#219#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPANDN;
+    opcode  : A_VPERMT2B;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#223#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPANDN;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#223#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGB;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#224#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGB;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#224#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGW;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#227#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPAVGW;
+    opcode  : A_VPERMT2D;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#227#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDVB;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
-    code    : #241#242#250#1#76#61#80#247;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMT2D;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDVB;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_ymmreg);
-    code    : #241#242#244#250#1#76#61#80#247;
-    flags   : [if_avx2]
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#14#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDW;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#14#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCLMULQDQ;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#68#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPERMT2PD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQB;
+    opcode  : A_VPERMT2PD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#116#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQB;
+    opcode  : A_VPERMT2PD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#116#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQD;
+    opcode  : A_VPERMT2PS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#118#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQD;
+    opcode  : A_VPERMT2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#118#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQQ;
+    opcode  : A_VPERMT2PS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#41#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQQ;
+    opcode  : A_VPERMT2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#41#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQW;
+    opcode  : A_VPERMT2PS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#117#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPEQW;
+    opcode  : A_VPERMT2PS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#117#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#127#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPESTRI;
+    opcode  : A_VPERMT2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#97#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPESTRM;
+    opcode  : A_VPERMT2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#96#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTB;
+    opcode  : A_VPERMT2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#100#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTB;
+    opcode  : A_VPERMT2Q;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#100#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTD;
+    opcode  : A_VPERMT2Q;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#102#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTD;
+    opcode  : A_VPERMT2Q;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#102#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#126#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPCMPGTQ;
+    opcode  : A_VPERMT2W;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#55#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPGTQ;
+    opcode  : A_VPERMT2W;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#55#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPGTW;
+    opcode  : A_VPERMT2W;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#101#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#125#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPGTW;
+    opcode  : A_VPERMW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#101#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPISTRI;
+    opcode  : A_VPERMW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#99#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPCMPISTRM;
+    opcode  : A_VPERMW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#98#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#141#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPERM2F128;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#6#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#13#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#5#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#241#244#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#5#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPERMILPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#13#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#137#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
+    code    : #232#234#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#137#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#137#72;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#137#72;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#137#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#12#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#4#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#4#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMILPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#12#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRB;
-    ops     : 3;
-    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#20#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRB;
-    ops     : 3;
-    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#20#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRB;
-    ops     : 3;
-    optypes : (ot_memory or ot_bits8,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#20#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRD;
-    ops     : 3;
-    optypes : (ot_rm_gpr or ot_bits32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#22#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRQ;
-    ops     : 3;
-    optypes : (ot_rm_gpr or ot_bits64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#243#250#1#22#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
-    ops     : 3;
-    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#197#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
-    ops     : 3;
-    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#197#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
-    ops     : 3;
-    optypes : (ot_reg32,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#21#65#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPLZCNTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#68#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_reg64,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#21#65#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPEXTRW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_memory or ot_bits16,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#21#65#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDD;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#2#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDD;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#2#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDSW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#3#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDSW;
+    opcode  : A_VPMADD52HUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#3#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#181#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDW;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#1#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHADDW;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#1#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHMINPOSUW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#65#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMADD52LUQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBD;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#6#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBD;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#6#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBSW;
+    opcode  : A_VPMADD52LUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#7#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#180#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBSW;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#7#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBW;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#5#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPHSUBW;
+    opcode  : A_VPMAXSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#5#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRB;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#32#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXSQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRB;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits8,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#32#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXSQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#34#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXSQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#61#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRQ;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_rm_gpr or ot_bits64,ot_immediate or ot_bits8);
-    code    : #241#242#243#250#1#34#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_reg32,ot_immediate or ot_bits8);
-    code    : #241#242#248#1#196#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPINSRW;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits16,ot_immediate or ot_bits8);
-    code    : #241#242#248#1#196#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMAXUQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDUBSW;
+    opcode  : A_VPMAXUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#4#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDUBSW;
+    opcode  : A_VPMAXUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#4#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDWD;
+    opcode  : A_VPMAXUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#245#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#63#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMADDWD;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#245#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSB;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#60#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSB;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#60#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSD;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#61#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSD;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#61#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSW;
+    opcode  : A_VPMINSQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#238#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#57#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXSW;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#238#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUB;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#222#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUB;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#222#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUD;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#63#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUD;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#63#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUW;
+    opcode  : A_VPMINUQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#62#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#59#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMAXUW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#62#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVB2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#56#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVB2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#56#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVB2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#57#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVD2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#57#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVD2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#234#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVD2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINSW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#234#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#49#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMINUB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#218#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#49#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMINUB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#218#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#49#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMINUD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#59#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#49#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINUD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#59#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#49#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINUW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#58#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#49#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMINUW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#58#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVDW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#51#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVDW;
     ops     : 2;
-    optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#215#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#51#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVDW;
     ops     : 2;
-    optypes : (ot_reg32,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#215#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#51#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVDW;
     ops     : 2;
-    optypes : (ot_reg32,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#215#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#51#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVMSKB;
+    opcode  : A_VPMOVDW;
     ops     : 2;
-    optypes : (ot_reg64,ot_ymmreg,ot_none,ot_none);
-    code    : #241#242#244#248#1#215#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#51#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVDW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#33#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#51#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVM2B;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#33#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVM2B;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#33#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBD;
+    opcode  : A_VPMOVM2B;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#33#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2D;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#249#1#34#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2D;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#34#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2D;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#34#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBQ;
+    opcode  : A_VPMOVM2Q;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#34#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBW;
+    opcode  : A_VPMOVM2Q;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#32#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBW;
+    opcode  : A_VPMOVM2Q;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#32#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#56#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXBW;
+    opcode  : A_VPMOVM2W;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#32#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXDQ;
+    opcode  : A_VPMOVM2W;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#37#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXDQ;
+    opcode  : A_VPMOVM2W;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#37#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg,ot_kreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#40#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXDQ;
+    opcode  : A_VPMOVQ2M;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#37#72;
-    flags   : [if_avx2]
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXWD;
+    opcode  : A_VPMOVQ2M;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#35#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXWD;
+    opcode  : A_VPMOVQ2M;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#35#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#57#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXWD;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#35#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem16_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#50#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#36#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#50#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#36#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#50#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#36#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#50#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVSXWQ;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#36#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#50#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#49#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#50#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#49#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#53#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#49#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#53#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXBD;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#49#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#53#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#249#1#50#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#53#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#50#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#53#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#50#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#53#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXBQ;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#50#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#52#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXBW;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#48#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#52#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXBW;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#48#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#52#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXBW;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#48#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#52#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXDQ;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#53#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#52#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXDQ;
+    opcode  : A_VPMOVQW;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#53#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#52#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXDQ;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#53#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#33#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXWD;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#51#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#33#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXWD;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#51#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#33#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPMOVZXWD;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#51#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#33#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#52#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#33#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDB;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#52#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#33#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#52#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#35#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMOVZXWQ;
+    opcode  : A_VPMOVSDW;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#52#72;
-    flags   : [if_avx2]
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#35#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#40#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSDW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#35#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#40#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#35#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULHRSW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#11#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#35#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULHRSW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#11#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSDW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#35#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULHUW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#228#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_mem16_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#34#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMULHUW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#228#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#34#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMULHW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#229#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#34#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPMULHW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#229#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#34#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#64#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#34#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#64#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#34#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPMULLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#213#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#37#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#213#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#37#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULUDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#244#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#37#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPMULUDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#244#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#37#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPOR;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#235#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#37#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPOR;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#235#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#37#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSADBW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#246#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#36#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSADBW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#246#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#36#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSHUFB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#0#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#36#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSHUFB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#0#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#36#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#112#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#36#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#112#72#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#36#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFHW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #219#242#248#1#112#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#32#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSHUFHW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #219#242#244#248#1#112#72#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#32#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSHUFLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #220#242#248#1#112#72#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#32#65;
+    flags   : [if_avx512,if_thvm]
+  ),
+  (
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#32#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSHUFLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #220#242#244#248#1#112#72#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#32#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSIGNB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#8#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVSWB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#32#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSIGNB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#8#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#17#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSIGND;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#10#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#17#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSIGND;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#10#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#17#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSIGNW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#9#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#17#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSIGNW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#9#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#17#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#114#60#142#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#17#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#242#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#19#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#114#60#142#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#19#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#242#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#19#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSLLDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#143#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#19#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#143#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#19#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#243#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSDW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#19#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#142#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_mem16_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#18#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#243#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#18#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPSLLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#142#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#18#65;
+    flags   : [if_avx512,if_tovm]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#113#60#142#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#18#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#241#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#18#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#113#60#142#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#18#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSLLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#241#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#21#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#114#60#140#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#21#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#226#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#21#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#114#60#140#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#21#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#226#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#21#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#113#60#140#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#21#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#225#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#20#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#113#60#140#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_mem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#20#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSRAW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#225#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#20#65;
+    flags   : [if_avx512,if_tqvm]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#114#60#138#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#20#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#210#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#20#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#114#60#138#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSQW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#20#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#210#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#16#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLDQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#139#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#16#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLDQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#139#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#16#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#115#60#138#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#16#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#211#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#16#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#115#60#138#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVUSWB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#16#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLQ;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#211#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVW2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#234#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#248#1#113#60#138#22;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVW2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#234#244#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#209#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVW2M;
+    ops     : 2;
+    optypes : (ot_kreg,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#234#249#1#41#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#248#1#113#60#138#22;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#48#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSRLW;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_none);
-    code    : #241#242#244#248#1#209#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#48#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSUBB;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#248#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_mem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#48#65;
+    flags   : [if_avx512,if_thvm]
   ),
   (
-    opcode  : A_VPSUBB;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#248#61#80;
-    flags   : [if_avx2]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #219#232#249#1#48#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSUBD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#250#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #219#232#244#249#1#48#65;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VPSUBD;
+    opcode  : A_VPMOVWB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #219#232#233#249#1#48#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#250#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBQ;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#251#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBQ;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#251#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSB;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#232#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSB;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#232#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSW;
+    opcode  : A_VPMULLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#233#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#64#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBSW;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#233#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSB;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#216#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSB;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#216#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSW;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#217#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBUSW;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#217#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBW;
+    opcode  : A_VPMULTISHIFTQB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#249#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#131#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSUBW;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#249#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPTEST;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#23#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPORD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPTEST;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#23#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPORD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHBW;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#104#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHBW;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#104#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHDQ;
+    opcode  : A_VPORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#106#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHDQ;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#106#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHQDQ;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#109#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHQDQ;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#109#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHWD;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#105#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKHWD;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#105#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLBW;
+    opcode  : A_VPORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#96#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#235#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLBW;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#96#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLDQ;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#98#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLDQ;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#98#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLQDQ;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#108#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLQDQ;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#108#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLWD;
+    opcode  : A_VPROLD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#97#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPUNPCKLWD;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#97#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPXOR;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#239#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPXOR;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#239#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#83#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPPS;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#83#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPSS;
+    opcode  : A_VPROLQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#83#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#137#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRCPSS;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#83#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPD;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#9#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPD;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#9#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPS;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#8#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDPS;
+    opcode  : A_VPROLVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#250#1#8#72#22;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#11#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#11#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#10#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VROUNDSS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#10#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTPS;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#82#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#82#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPROLVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTSS;
+    opcode  : A_VPROLVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#82#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#21#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VRSQRTSS;
+    opcode  : A_VPRORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#82#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPD;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPS;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #242#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSHUFPS;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #242#244#248#1#198#61#80#23;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #242#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTPS;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #242#244#248#1#81#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSD;
+    opcode  : A_VPRORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSD;
+    opcode  : A_VPRORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSS;
+    opcode  : A_VPRORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#136#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSQRTSS;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#81#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSTMXCSR;
-    ops     : 1;
-    optypes : (ot_memory or ot_bits32,ot_none,ot_none,ot_none);
-    code    : #242#248#1#174#131;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPD;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPD;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPS;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBPS;
+    opcode  : A_VPRORVD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSD;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits64,ot_none);
-    code    : #220#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSD;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #220#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSS;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits32,ot_none);
-    code    : #219#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VSUBSS;
+    opcode  : A_VPRORVQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #219#242#248#1#92#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VTESTPD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#15#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VTESTPD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#15#72;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPRORVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#20#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VTESTPS;
+    opcode  : A_VPSCATTERDD;
     ops     : 2;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
-    code    : #241#242#244#249#1#14#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VTESTPS;
+    opcode  : A_VPSCATTERDD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
-    code    : #241#242#249#1#14#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISD;
+    opcode  : A_VPSCATTERDD;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmem32_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISD;
+    opcode  : A_VPSCATTERDQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISS;
+    opcode  : A_VPSCATTERDQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUCOMISS;
+    opcode  : A_VPSCATTERDQ;
     ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #242#248#1#46#72;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#160#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQD;
+    ops     : 2;
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQD;
+    ops     : 2;
+    optypes : (ot_ymem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQD;
+    ops     : 2;
+    optypes : (ot_zmem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKHPS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#21#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQQ;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKLPD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQQ;
+    ops     : 2;
+    optypes : (ot_ymem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKLPD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSCATTERQQ;
+    ops     : 2;
+    optypes : (ot_zmem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#161#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VUNPCKLPS;
+    opcode  : A_VPSLLVW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#18#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VUNPCKLPS;
+    opcode  : A_VPSLLVW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#20#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#18#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VXORPD;
+    opcode  : A_VPSLLVW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#18#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VXORPD;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
   ),
   (
-    opcode  : A_VXORPS;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #242#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VXORPS;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #242#244#248#1#87#61#80;
-    flags   : [if_avx,if_sandybridge]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VZEROALL;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #242#244#248#1#119;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSRAQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#244#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
   ),
   (
-    opcode  : A_VZEROUPPER;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #242#248#1#119;
-    flags   : [if_avx,if_sandybridge]
+    opcode  : A_VPSRAQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_ANDN;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #242#249#1#242#61#80;
-    flags   : [if_bmi1,if_prot]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BEXTR;
+    opcode  : A_VPSRAQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #242#249#1#247#62#72;
-    flags   : [if_bmi1,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_xmmrm,ot_none);
+    code    : #232#233#234#241#248#1#226#61#80;
+    flags   : [if_avx512,if_tmem128]
   ),
   (
-    opcode  : A_BLSI;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #242#249#1#243#60#139;
-    flags   : [if_bmi1,if_prot]
+    opcode  : A_VPSRAQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BLSMSK;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #242#249#1#243#60#138;
-    flags   : [if_bmi1,if_prot]
+    opcode  : A_VPSRAQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BLSR;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #242#249#1#243#60#137;
-    flags   : [if_bmi1,if_prot]
+    opcode  : A_VPSRAVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_TZCNT;
-    ops     : 2;
-    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_rm_gpr,ot_none,ot_none);
-    code    : #208#219#2#15#188#72;
-    flags   : [if_bmi1,if_sm]
+    opcode  : A_VPSRAVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BZHI;
+    opcode  : A_VPSRAVQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #242#249#1#245#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_MULX;
+    opcode  : A_VPSRAVQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #220#242#249#1#246#61#80;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_PDEP;
+    opcode  : A_VPSRAVQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #220#242#249#1#245#61#80;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_PEXT;
+    opcode  : A_VPSRAVQ;
     ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_rm_gpr or ot_bits32,ot_none);
-    code    : #219#242#249#1#245#61#80;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#70#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_RORX;
+    opcode  : A_VPSRAVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_immediate or ot_bits8,ot_none);
-    code    : #220#242#250#1#240#72#22;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#17#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_SARX;
+    opcode  : A_VPSRAVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #219#242#249#1#247#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#17#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_SHLX;
+    opcode  : A_VPSRAVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #241#242#249#1#247#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#17#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_SHRX;
+    opcode  : A_VPSRLVW;
     ops     : 3;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
-    code    : #220#242#249#1#247#62#72;
-    flags   : [if_bmi2,if_prot]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#16#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_ADCX;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #241#3#15#56#246#72;
-    flags   : [if_adx]
+    opcode  : A_VPSRLVW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#16#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_ADOX;
-    ops     : 2;
-    optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_none,ot_none);
-    code    : #219#3#15#56#246#72;
-    flags   : [if_adx]
+    opcode  : A_VPSRLVW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#16#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VBROADCASTI128;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits128,ot_none,ot_none);
-    code    : #241#242#244#249#1#90#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VEXTRACTI128;
-    ops     : 3;
-    optypes : (ot_xmmrm,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#244#250#1#57#65#22;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VINSERTI128;
+    opcode  : A_VPTERNLOGD;
     ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#56#61#80#23;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDD;
+    opcode  : A_VPTERNLOGD;
     ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#2#61#80#23;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBLENDD;
+    opcode  : A_VPTERNLOGD;
     ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
-    code    : #241#242#250#1#2#61#80#23;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits8,ot_none,ot_none);
-    code    : #241#242#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTB;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits8,ot_none,ot_none);
-    code    : #241#242#244#249#1#120#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTERNLOGQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#37#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTD;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
-    code    : #241#242#244#249#1#88#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#244#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
-    code    : #241#242#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTQ;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#89#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_memory or ot_bits16,ot_none,ot_none);
-    code    : #241#242#244#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPBROADCASTW;
-    ops     : 2;
-    optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
-    code    : #241#242#244#249#1#121#72;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMD;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERM2I128;
-    ops     : 4;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
-    code    : #241#242#244#250#1#70#61#80#23;
-    flags   : [if_avx2]
+    opcode  : A_VPTESTMQ;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMD;
+    opcode  : A_VPTESTMQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#54#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMPD;
+    opcode  : A_VPTESTMQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#243#244#250#1#1#72#22;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMPS;
+    opcode  : A_VPTESTMQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#22#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPERMQ;
+    opcode  : A_VPTESTMQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
-    code    : #241#242#243#244#250#1#0#72#22;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTMQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTMW;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTMW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#244#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPMASKMOVD;
+    opcode  : A_VPTESTMW;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMB;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_memory or ot_bits128,ot_none);
-    code    : #241#242#243#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMB;
     ops     : 3;
-    optypes : (ot_memory or ot_bits128,ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMB;
     ops     : 3;
-    optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#142#61#66;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VPMASKMOVQ;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_memory or ot_bits256,ot_none);
-    code    : #241#242#243#244#249#1#140#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSLLVD;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #219#232#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSLLVD;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSLLVQ;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#243#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #219#232#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSLLVQ;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#243#244#249#1#71#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRAVD;
+    opcode  : A_VPTESTNMD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#70#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #219#232#233#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRAVD;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#70#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVD;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #219#232#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVD;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#234#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVQ;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#243#244#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #219#232#234#244#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPSRLVQ;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#243#249#1#69#61#80;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERDPD;
+    opcode  : A_VPTESTNMQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #219#232#233#234#249#1#39#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERDPD;
+    opcode  : A_VPTESTNMW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_xmem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #219#232#234#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VGATHERDPS;
+    opcode  : A_VPTESTNMW;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #219#232#234#244#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VGATHERDPS;
+    opcode  : A_VPTESTNMW;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#146#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #219#232#233#234#249#1#38#61#80;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
-    opcode  : A_VGATHERQPD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERQPD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERQPS;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VGATHERQPS;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
-    code    : #241#242#244#249#1#147#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERDD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#144#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERDD;
+    opcode  : A_VPXORD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem32,ot_ymmreg,ot_none);
-    code    : #241#242#244#249#1#144#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERDQ;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#144#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERDQ;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_xmem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#144#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERQD;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem32,ot_xmmreg,ot_none);
-    code    : #241#242#249#1#145#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERQD;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_ymem32,ot_xmmreg,ot_none);
-    code    : #241#242#244#249#1#145#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERQQ;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmem64,ot_xmmreg,ot_none);
-    code    : #241#242#243#249#1#145#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VPGATHERQQ;
+    opcode  : A_VPXORQ;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymem64,ot_ymmreg,ot_none);
-    code    : #241#242#243#244#249#1#145#62#72;
-    flags   : [if_avx2]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#248#1#239#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_ADD4S;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #2#15#32;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_BRKEM;
-    ops     : 1;
-    optypes : (ot_immediate,ot_none,ot_none,ot_none);
-    code    : #2#15#255#20;
-    flags   : [if_nec,if_sb,if_16bitonly]
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_CLR1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#18#128;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_CLR1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#19#128;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_CLR1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
-    code    : #2#15#26#128#21;
-    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_CLR1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
-    code    : #2#15#27#128#21;
-    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_CMP4S;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #2#15#38;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#80#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_EXT;
-    ops     : 2;
-    optypes : (ot_reg8,ot_reg8,ot_none,ot_none);
-    code    : #2#15#51#65;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_EXT;
-    ops     : 2;
-    optypes : (ot_reg8,ot_immediate,ot_none,ot_none);
-    code    : #2#15#59#128#21;
-    flags   : [if_nec,if_sb,if_imm4,if_16bitonly]
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_NEC_INS;
-    ops     : 2;
-    optypes : (ot_reg8,ot_reg8,ot_none,ot_none);
-    code    : #2#15#49#65;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_NEC_INS;
-    ops     : 2;
-    optypes : (ot_reg8,ot_immediate,ot_none,ot_none);
-    code    : #2#15#57#128#21;
-    flags   : [if_nec,if_sb,if_imm4,if_16bitonly]
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_NOT1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#22#128;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_NOT1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#23#128;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#80#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_NOT1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
-    code    : #2#15#30#128#21;
-    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+    opcode  : A_VRANGEPS;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#80#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_NOT1;
-    ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
-    code    : #2#15#31#128#21;
-    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+    opcode  : A_VRANGESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#81#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_REPC;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #1#101;
-    flags   : [if_nec,if_pre,if_16bitonly]
+    opcode  : A_VRANGESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#81#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_REPNC;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #1#100;
-    flags   : [if_nec,if_pre,if_16bitonly]
+    opcode  : A_VRANGESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#81#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_ROL4;
-    ops     : 1;
-    optypes : (ot_rm_gpr or ot_bits8,ot_none,ot_none,ot_none);
-    code    : #2#15#40#128;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRANGESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#81#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_ROR4;
-    ops     : 1;
-    optypes : (ot_rm_gpr or ot_bits8,ot_none,ot_none,ot_none);
-    code    : #2#15#42#128;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRCP14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_SET1;
+    opcode  : A_VRCP14PD;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#20#128;
-    flags   : [if_nec,if_16bitonly]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_SET1;
+    opcode  : A_VRCP14PD;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#21#128;
-    flags   : [if_nec,if_16bitonly]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_SET1;
+    opcode  : A_VRCP14PD;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
-    code    : #2#15#28#128#21;
-    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_SET1;
+    opcode  : A_VRCP14PD;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
-    code    : #2#15#29#128#21;
-    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_SUB4S;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #2#15#34;
-    flags   : [if_nec,if_16bitonly]
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_TEST1;
+    opcode  : A_VRCP14PS;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#16#128;
-    flags   : [if_nec,if_16bitonly]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_TEST1;
+    opcode  : A_VRCP14PS;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_reg_cl,ot_none,ot_none);
-    code    : #2#15#17#128;
-    flags   : [if_nec,if_16bitonly]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_TEST1;
+    opcode  : A_VRCP14PS;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits8,ot_immediate,ot_none,ot_none);
-    code    : #2#15#24#128#21;
-    flags   : [if_nec,if_sb,if_imm3,if_16bitonly]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_TEST1;
+    opcode  : A_VRCP14PS;
     ops     : 2;
-    optypes : (ot_rm_gpr or ot_bits16,ot_immediate,ot_none,ot_none);
-    code    : #2#15#25#128#21;
-    flags   : [if_nec,if_sw,if_imm4,if_16bitonly]
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD132PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#152#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRCP14PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#76#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD132PD;
+    opcode  : A_VRCP14SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#152#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#77#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADD213PD;
+    opcode  : A_VRCP14SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#168#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#234#241#249#1#77#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD213PD;
+    opcode  : A_VRCP14SS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#168#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#77#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADD231PD;
+    opcode  : A_VRCP14SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#184#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#241#249#1#77#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD231PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#184#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRCP28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
-    code    : #241#242#250#1#105#61#80#247;
-    flags   : [if_fma4]
+    opcode  : A_VRCP28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDPD;
-    ops     : 4;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmreg,ot_xmmrm);
-    code    : #241#242#250#243#1#105#61#88#246;
-    flags   : [if_fma4]
+    opcode  : A_VRCP28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#202#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD132PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#152#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRCP28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD132PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#152#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRCP28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#202#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD213PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#168#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRCP28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#202#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD213PS;
+    opcode  : A_VRCP28SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#168#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#203#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADD231PS;
+    opcode  : A_VRCP28SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#184#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#234#241#249#1#203#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD231PS;
+    opcode  : A_VRCP28SS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#184#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#203#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADD132SD;
+    opcode  : A_VRCP28SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#153#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#241#249#1#203#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADD213SD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#169#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD231SD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#185#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD132SS;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#153#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD213SS;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#169#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADD231SS;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#185#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB132PD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB132PD;
+    opcode  : A_VREDUCEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#86#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADDSUB213PD;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#166#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB213PD;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#166#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB231PD;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#182#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB231PD;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#182#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB132PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB132PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#150#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#86#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMADDSUB213PS;
+    opcode  : A_VREDUCEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#166#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#86#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADDSUB213PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#166#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#87#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMADDSUB231PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#182#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#87#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMADDSUB231PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#182#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#87#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUBADD132PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#151#61#80;
-    flags   : [if_fma]
+    opcode  : A_VREDUCESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#87#61#80#23;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUBADD132PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#151#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD213PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#167#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD213PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#167#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD231PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#183#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#234#241#244#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD231PD;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#183#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD132PS;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#151#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#9#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD132PS;
+    opcode  : A_VRNDSCALEPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#151#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#234#241#250#1#9#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUBADD213PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#167#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD213PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#167#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD231PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#183#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUBADD231PS;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#183#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB132PD;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#154#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB132PD;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#154#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#8#72#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB213PD;
+    opcode  : A_VRNDSCALEPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#170#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_immediate or ot_bits8,ot_none);
+    code    : #232#233#241#250#1#8#72#22;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB213PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#170#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRNDSCALESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#11#61#80#23;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB231PD;
+    opcode  : A_VRNDSCALESD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#11#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VRNDSCALESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#10#61#80#23;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VRNDSCALESS;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#10#61#80#23;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#241#244#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#78#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VRSQRT14SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#186#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#234#241#249#1#79#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB231PD;
+    opcode  : A_VRSQRT14SD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#186#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#79#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB132PS;
+    opcode  : A_VRSQRT14SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#154#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #232#241#249#1#79#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB132PS;
+    opcode  : A_VRSQRT14SS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#154#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#79#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB213PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#170#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB213PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#170#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem64,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB231PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#186#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#204#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB231PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#186#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
+    code    : #232#233#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB132SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#155#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_bmem32,ot_none,ot_none);
+    code    : #232#233#241#249#1#204#72;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFMSUB213SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#171#61#80;
-    flags   : [if_fma]
+    opcode  : A_VRSQRT28PS;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
+    code    : #232#233#241#249#1#204#72;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB231SD;
+    opcode  : A_VRSQRT28SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#187#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#205#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB132SS;
+    opcode  : A_VRSQRT28SD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#155#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#234#241#249#1#205#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFMSUB213SS;
+    opcode  : A_VRSQRT28SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#171#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#205#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFMSUB231SS;
+    opcode  : A_VRSQRT28SS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#187#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_sae,ot_none);
+    code    : #232#241#249#1#205#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD132PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD132PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PD;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD132PS;
+    opcode  : A_VSCALEFPD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#234#241#249#1#44#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD132PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#156#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#172#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD231PS;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#188#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_memory or ot_bits512,ot_none);
+    code    : #232#233#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD132SD;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#157#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#44#61#80;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMADD213SD;
+    opcode  : A_VSCALEFPS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#173#61#80;
-    flags   : [if_fma]
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmreg_er,ot_none);
+    code    : #232#233#241#249#1#44#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD231SD;
+    opcode  : A_VSCALEFSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#189#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits64,ot_none);
+    code    : #232#234#241#249#1#45#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMADD132SS;
+    opcode  : A_VSCALEFSD;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#157#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#234#241#249#1#45#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMADD213SS;
+    opcode  : A_VSCALEFSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#173#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_memory or ot_bits32,ot_none);
+    code    : #232#241#249#1#45#61#80;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMADD231SS;
+    opcode  : A_VSCALEFSS;
     ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#189#61#80;
-    flags   : [if_fma]
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmreg_er,ot_none);
+    code    : #232#241#249#1#45#61#80;
+    flags   : [if_avx512]
   ),
   (
-    opcode  : A_VFNMSUB132PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPD;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPD;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPD;
+    ops     : 2;
+    optypes : (ot_ymem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPS;
+    ops     : 2;
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPS;
+    ops     : 2;
+    optypes : (ot_ymem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PD;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#243#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERDPS;
+    ops     : 2;
+    optypes : (ot_zmem32_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#162#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPD;
+    ops     : 2;
+    optypes : (ot_xmem64_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#158#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPD;
+    ops     : 2;
+    optypes : (ot_ymem64_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPD;
+    ops     : 2;
+    optypes : (ot_zmem64_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB213PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#174#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPS;
+    ops     : 2;
+    optypes : (ot_xmem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPS;
+    ops     : 2;
+    optypes : (ot_ymem32_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB231PS;
-    ops     : 3;
-    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
-    code    : #241#242#244#249#1#190#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSCATTERQPS;
+    ops     : 2;
+    optypes : (ot_zmem32_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#163#65;
+    flags   : [if_avx512,if_t1s]
   ),
   (
-    opcode  : A_VFNMSUB132SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#159#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB213SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#175#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB231SD;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#243#1#191#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB132SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#159#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB213SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#175#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_VFNMSUB231SS;
-    ops     : 3;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
-    code    : #241#242#249#1#191#61#80;
-    flags   : [if_fma]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XACQUIRE;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #1#242;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XRELEASE;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #1#243;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFF64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#35#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XBEGIN;
-    ops     : 1;
-    optypes : (ot_memory,ot_none,ot_none,ot_none);
-    code    : #208#2#199#248#52;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XABORT;
-    ops     : 1;
-    optypes : (ot_immediate,ot_none,ot_none,ot_none);
-    code    : #2#198#248#20;
-    flags   : [if_tsx,if_sb]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XEND;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #3#15#1#213;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XTEST;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #3#15#1#214;
-    flags   : [if_tsx]
+    opcode  : A_VSHUFI32X4;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_RDRAND;
-    ops     : 1;
-    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
-    code    : #208#2#15#199#134;
-    flags   : [if_rand]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_RDSEED;
-    ops     : 1;
-    optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none,ot_none);
-    code    : #208#2#15#199#135;
-    flags   : [if_rand]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_XGETBV;
-    ops     : 0;
-    optypes : (ot_none,ot_none,ot_none,ot_none);
-    code    : #3#15#1#208;
-    flags   : [if_xsave]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   ),
   (
-    opcode  : A_PREFETCHWT1;
-    ops     : 1;
-    optypes : (ot_memory,ot_none,ot_none,ot_none);
-    code    : #2#15#13#130;
-    flags   : [if_prefetchwt1]
+    opcode  : A_VSHUFI64X2;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#67#61#80#23;
+    flags   : [if_avx512,if_tfv]
   )
 );

+ 6 - 3
compiler/i8086/n8086add.pas

@@ -315,7 +315,7 @@ interface
         { is in unsigned VAR!!                              }
         if mboverflow then
          begin
-           if cs_check_overflow in current_settings.localswitches  then
+           if needoverflowcheck then
             begin
               current_asmdata.getjumplabel(hl4);
               if unsigned then
@@ -1002,6 +1002,7 @@ interface
         ref:Treference;
         use_ref:boolean;
         hl4 : tasmlabel;
+        overflowcheck: boolean;
 
     const
       asmops: array[boolean] of tasmop = (A_IMUL, A_MUL);
@@ -1012,10 +1013,12 @@ interface
 
       pass_left_right;
 
+      overflowcheck:=needoverflowcheck;
+
       { MUL is faster than IMUL on the 8086 & 8088 (and equal in speed on 286+),
         but it's only safe to use in place of IMUL when overflow checking is off
         and we're doing a 16-bit>16-bit multiplication }
-      if not (cs_check_overflow in current_settings.localswitches) and
+      if not overflowcheck and
         (not is_32bitint(resultdef)) then
         unsigned:=true;
 
@@ -1048,7 +1051,7 @@ interface
         emit_ref(asmops[unsigned],S_W,ref)
       else
         emit_reg(asmops[unsigned],S_W,reg);
-      if (cs_check_overflow in current_settings.localswitches) and
+      if overflowcheck and
         { 16->32 bit cannot overflow }
         (not is_32bitint(resultdef)) then
         begin

+ 3 - 2
compiler/i8086/n8086util.pas

@@ -42,7 +42,7 @@ implementation
 
   uses
     sysutils,cutils,
-    globtype,globals,cpuinfo,
+    globtype,globals,cpuinfo,systems,
     aasmbase,aasmdata,aasmtai,
     symdef;
 
@@ -52,7 +52,8 @@ implementation
       inherited;
       if current_settings.x86memorymodel<>mm_tiny then
         InsertStackSegment;
-      InsertHeapSegment;
+      if target_info.system<>system_i8086_win16 then
+        InsertHeapSegment;
       if current_settings.x86memorymodel in x86_near_data_models then
         InsertStackPlusHeapSize;
     end;

+ 16 - 0
compiler/i8086/r8086ari.inc

@@ -43,6 +43,14 @@
 29,
 30,
 39,
+98,
+99,
+100,
+101,
+102,
+103,
+104,
+105,
 66,
 67,
 68,
@@ -88,4 +96,12 @@
 88,
 89,
 36,
+90,
+91,
+92,
+93,
+94,
+95,
+96,
+97,
 0

+ 17 - 1
compiler/i8086/r8086att.inc

@@ -88,4 +88,20 @@
 '%ymm4',
 '%ymm5',
 '%ymm6',
-'%ymm7'
+'%ymm7',
+'%zmm0',
+'%zmm1',
+'%zmm2',
+'%zmm3',
+'%zmm4',
+'%zmm5',
+'%zmm6',
+'%zmm7',
+'%k0',
+'%k1',
+'%k2',
+'%k3',
+'%k4',
+'%k5',
+'%k6',
+'%k7'

+ 16 - 0
compiler/i8086/r8086con.inc

@@ -89,3 +89,19 @@ NR_YMM4 = tregister($040D0004);
 NR_YMM5 = tregister($040D0005);
 NR_YMM6 = tregister($040D0006);
 NR_YMM7 = tregister($040D0007);
+NR_ZMM0 = tregister($040E0000);
+NR_ZMM1 = tregister($040E0001);
+NR_ZMM2 = tregister($040E0002);
+NR_ZMM3 = tregister($040E0003);
+NR_ZMM4 = tregister($040E0004);
+NR_ZMM5 = tregister($040E0005);
+NR_ZMM6 = tregister($040E0006);
+NR_ZMM7 = tregister($040E0007);
+NR_K0 = tregister($06000000);
+NR_K1 = tregister($06000001);
+NR_K2 = tregister($06000002);
+NR_K3 = tregister($06000003);
+NR_K4 = tregister($06000004);
+NR_K5 = tregister($06000005);
+NR_K6 = tregister($06000006);
+NR_K7 = tregister($06000007);

+ 16 - 0
compiler/i8086/r8086dwrf.inc

@@ -88,4 +88,20 @@
 -1,
 -1,
 -1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
 -1

+ 17 - 1
compiler/i8086/r8086int.inc

@@ -88,4 +88,20 @@
 'ymm4',
 'ymm5',
 'ymm6',
-'ymm7'
+'ymm7',
+'zmm0',
+'zmm1',
+'zmm2',
+'zmm3',
+'zmm4',
+'zmm5',
+'zmm6',
+'zmm7',
+'k0',
+'k1',
+'k2',
+'k3',
+'k4',
+'k5',
+'k6',
+'k7'

Some files were not shown because too many files changed in this diff