2
0
Эх сурвалжийг харах

bugfix avx512 shift-opcodes vpsl..,vpsr.. - reg,mem,const => EVEX-coded = yes / VEX-coded = no

git-svn-id: branches/tg74/avx512-0037785@47401 -
tg74 4 жил өмнө
parent
commit
897322868b

+ 1 - 1
compiler/i386/i386nop.inc

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

+ 142 - 30
compiler/i386/i386tab.inc

@@ -15046,9 +15046,16 @@
   (
     opcode  : A_VPSLLD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#142#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSLLD;
@@ -15067,9 +15074,16 @@
   (
     opcode  : A_VPSLLD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#114#60#142#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15158,10 +15172,17 @@
   (
     opcode  : A_VPSLLQ;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,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_memory or ot_bits128,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;
@@ -15179,9 +15200,16 @@
   (
     opcode  : A_VPSLLQ;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#234#241#242#244#248#1#115#60#142#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15221,9 +15249,16 @@
   (
     opcode  : A_VPSLLW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#142#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSLLW;
@@ -15235,9 +15270,16 @@
   (
     opcode  : A_VPSLLW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#142#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSLLW;
@@ -15256,9 +15298,16 @@
   (
     opcode  : A_VPSRAD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#140#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSRAD;
@@ -15277,9 +15326,16 @@
   (
     opcode  : A_VPSRAD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#114#60#140#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15319,9 +15375,16 @@
   (
     opcode  : A_VPSRAW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#140#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRAW;
@@ -15333,9 +15396,16 @@
   (
     opcode  : A_VPSRAW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#140#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRAW;
@@ -15361,9 +15431,16 @@
   (
     opcode  : A_VPSRLD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#138#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSRLD;
@@ -15389,10 +15466,17 @@
   (
     opcode  : A_VPSRLD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,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_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#138#22;
+    flags   : [if_avx2,if_tfv]
+  ),
   (
     opcode  : A_VPSRLD;
     ops     : 3;
@@ -15466,9 +15550,16 @@
   (
     opcode  : A_VPSRLQ;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,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]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,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;
@@ -15480,9 +15571,16 @@
   (
     opcode  : A_VPSRLQ;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#234#241#242#244#248#1#115#60#138#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15522,9 +15620,16 @@
   (
     opcode  : A_VPSRLW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#138#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRLW;
@@ -15536,9 +15641,16 @@
   (
     opcode  : A_VPSRLW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#138#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRLW;

+ 1 - 1
compiler/i8086/i8086nop.inc

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

+ 142 - 30
compiler/i8086/i8086tab.inc

@@ -15074,9 +15074,16 @@
   (
     opcode  : A_VPSLLD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#142#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSLLD;
@@ -15095,9 +15102,16 @@
   (
     opcode  : A_VPSLLD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#114#60#142#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15186,10 +15200,17 @@
   (
     opcode  : A_VPSLLQ;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,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_memory or ot_bits128,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;
@@ -15207,9 +15228,16 @@
   (
     opcode  : A_VPSLLQ;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#234#241#242#244#248#1#115#60#142#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15249,9 +15277,16 @@
   (
     opcode  : A_VPSLLW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#142#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSLLW;
@@ -15263,9 +15298,16 @@
   (
     opcode  : A_VPSLLW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#142#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSLLW;
@@ -15284,9 +15326,16 @@
   (
     opcode  : A_VPSRAD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#140#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSRAD;
@@ -15305,9 +15354,16 @@
   (
     opcode  : A_VPSRAD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#114#60#140#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15347,9 +15403,16 @@
   (
     opcode  : A_VPSRAW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#140#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRAW;
@@ -15361,9 +15424,16 @@
   (
     opcode  : A_VPSRAW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#140#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRAW;
@@ -15389,9 +15459,16 @@
   (
     opcode  : A_VPSRLD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#138#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSRLD;
@@ -15417,10 +15494,17 @@
   (
     opcode  : A_VPSRLD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,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_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#138#22;
+    flags   : [if_avx2,if_tfv]
+  ),
   (
     opcode  : A_VPSRLD;
     ops     : 3;
@@ -15494,9 +15578,16 @@
   (
     opcode  : A_VPSRLQ;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,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]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,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;
@@ -15508,9 +15599,16 @@
   (
     opcode  : A_VPSRLQ;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#234#241#242#244#248#1#115#60#138#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15550,9 +15648,16 @@
   (
     opcode  : A_VPSRLW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#138#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRLW;
@@ -15564,9 +15669,16 @@
   (
     opcode  : A_VPSRLW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#138#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRLW;

+ 32 - 16
compiler/x86/x86ins.dat

@@ -5482,10 +5482,12 @@ ymmreg,ymmreg,ymmrm                  \361\362\364\371\1\x09\75\120        AVX2
 
 [VPSLLD]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
-xmmreg_mz,xmmrm,imm8                      \350\361\362\370\1\x72\74\216\26          AVX,SANDYBRIDGE,TFV
+xmmreg_mz,xmmreg,imm8                     \350\361\362\370\1\x72\74\216\26          AVX,SANDYBRIDGE
+xmmreg_mz,mem128,imm8                     \350\361\370\1\x72\74\216\26              AVX512,TFV
 xmmreg_mz,bmem32,imm8                     \350\361\370\1\x72\74\216\26              AVX512,TFV
 xmmreg_mz,xmmreg,xmmrm                    \350\361\362\370\1\xF2\75\120             AVX,SANDYBRIDGE,TMEM128
-ymmreg_mz,ymmrm,imm8                      \350\361\362\364\370\1\x72\74\216\26      AVX2,TFV
+ymmreg_mz,ymmreg,imm8                     \350\361\362\364\370\1\x72\74\216\26      AVX2
+ymmreg_mz,mem256,imm8                     \350\361\364\370\1\x72\74\216\26          AVX512,TFV
 ymmreg_mz,bmem32,imm8                     \350\361\364\370\1\x72\74\216\26          AVX512,TFV
 ymmreg_mz,ymmreg,xmmrm                    \350\361\362\364\370\1\xF2\75\120         AVX2,TMEM128
 zmmreg_mz,zmmreg,xmmrm                    \350\351\361\370\1\xF2\75\120             AVX512,TMEM128
@@ -5506,10 +5508,12 @@ zmmreg,zmmreg,imm8                        \350\351\361\370\1\x73\74\217\26
 [VPSLLQ]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
 xmmreg_mz,xmmreg,xmmrm                    \350\352\361\362\370\1\xF3\75\120         AVX,SANDYBRIDGE,TMEM128
-xmmreg_mz,xmmrm,imm8                      \350\352\361\362\370\1\x73\74\216\26      AVX,SANDYBRIDGE,TFV
+xmmreg_mz,xmmreg,imm8                     \350\352\361\362\370\1\x73\74\216\26      AVX,SANDYBRIDGE,TFV
+xmmreg_mz,mem128,imm8                     \350\352\361\370\1\x73\74\216\26          AVX512,TFV
 xmmreg_mz,bmem64,imm8                     \350\352\361\370\1\x73\74\216\26          AVX512,TFV
 ymmreg_mz,ymmreg,xmmrm                    \350\352\361\362\364\370\1\xF3\75\120     AVX2,TMEM128
-ymmreg_mz,ymmrm,imm8                      \350\352\361\362\364\370\1\x73\74\216\26  AVX2,TFV
+ymmreg_mz,ymmreg,imm8                     \350\352\361\362\364\370\1\x73\74\216\26  AVX2
+ymmreg_mz,mem256,imm8                     \350\352\361\364\370\1\x73\74\216\26      AVX512,TFV
 ymmreg_mz,bmem64,imm8                     \350\352\361\364\370\1\x73\74\216\26      AVX512,TFV
 zmmreg_mz,zmmreg,xmmrm                    \350\351\352\361\370\1\xF3\75\120         AVX512,TMEM128
 zmmreg_mz,zmmrm,imm8                      \350\351\352\361\370\1\x73\74\216\26      AVX512,TFV
@@ -5519,19 +5523,23 @@ zmmreg_mz,bmem64,imm8                     \350\351\352\361\370\1\x73\74\216\26
 [VPSLLW]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
 xmmreg_mz,xmmreg,xmmrm                    \350\361\362\370\1\xF1\75\120             AVX,SANDYBRIDGE,TMEM128
-xmmreg_mz,xmmrm,imm8                      \350\361\362\370\1\x71\74\216\26          AVX,SANDYBRIDGE,TFVM
+xmmreg_mz,xmmreg,imm8                     \350\361\362\370\1\x71\74\216\26          AVX,SANDYBRIDGE
+xmmreg_mz,mem128,imm8                     \350\361\370\1\x71\74\216\26              AVX512,TFVM
 ymmreg_mz,ymmreg,xmmrm                    \350\361\362\364\370\1\xF1\75\120         AVX2,TMEM128
-ymmreg_mz,ymmrm,imm8                      \350\361\362\364\370\1\x71\74\216\26      AVX2,TFVM
+ymmreg_mz,ymmreg,imm8                     \350\361\362\364\370\1\x71\74\216\26      AVX2
+ymmreg_mz,mem256,imm8                     \350\361\364\370\1\x71\74\216\26          AVX512,TFVM
 zmmreg_mz,zmmreg,xmmrm                    \350\351\361\370\1\xF1\75\120             AVX512,TMEM128
 zmmreg_mz,zmmrm,imm8                      \350\351\361\370\1\x71\74\216\26          AVX512,TFVM
 
 
 [VPSRAD]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
-xmmreg_mz,xmmrm,imm8                      \350\361\362\370\1\x72\74\214\26          AVX,SANDYBRIDGE,TFV
+xmmreg_mz,xmmreg,imm8                     \350\361\362\370\1\x72\74\214\26          AVX,SANDYBRIDGE
+xmmreg_mz,mem128,imm8                     \350\361\370\1\x72\74\214\26              AVX512,TFV
 xmmreg_mz,bmem32,imm8                     \350\361\370\1\x72\74\214\26              AVX512,TFV
 xmmreg_mz,xmmreg,xmmrm                    \350\361\362\370\1\xE2\75\120             AVX,SANDYBRIDGE,TMEM128
-ymmreg_mz,ymmrm,imm8                      \350\361\362\364\370\1\x72\74\214\26      AVX2,TFV
+ymmreg_mz,ymmreg,imm8                     \350\361\362\364\370\1\x72\74\214\26      AVX2
+ymmreg_mz,mem256,imm8                     \350\361\364\370\1\x72\74\214\26          AVX512,TFV
 ymmreg_mz,bmem32,imm8                     \350\361\364\370\1\x72\74\214\26          AVX512,TFV
 ymmreg_mz,ymmreg,xmmrm                    \350\361\362\364\370\1\xE2\75\120         AVX2,TMEM128
 zmmreg_mz,zmmreg,xmmrm                    \350\351\361\370\1\xE2\75\120             AVX512,TMEM128
@@ -5541,9 +5549,11 @@ zmmreg_mz,bmem32,imm8                     \350\351\361\370\1\x72\74\214\26
 
 [VPSRAW]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
-xmmreg_mz,xmmrm,imm8                      \350\361\362\370\1\x71\74\214\26          AVX,SANDYBRIDGE,TFVM
+xmmreg_mz,xmmreg,imm8                     \350\361\362\370\1\x71\74\214\26          AVX,SANDYBRIDGE
+xmmreg_mz,mem128,imm8                     \350\361\370\1\x71\74\214\26              AVX512,TFVM
 xmmreg_mz,xmmreg,xmmrm                    \350\361\362\370\1\xE1\75\120             AVX,SANDYBRIDGE,TMEM128
-ymmreg_mz,ymmrm,imm8                      \350\361\362\364\370\1\x71\74\214\26      AVX2,TFVM
+ymmreg_mz,ymmreg,imm8                     \350\361\362\364\370\1\x71\74\214\26      AVX2
+ymmreg_mz,mem256,imm8                     \350\361\364\370\1\x71\74\214\26          AVX512,TFVM
 ymmreg_mz,ymmreg,xmmrm                    \350\361\362\364\370\1\xE1\75\120         AVX2,TMEM128
 zmmreg_mz,zmmreg,xmmrm                    \350\351\361\370\1\xE1\75\120             AVX512,TMEM128
 zmmreg_mz,zmmrm,imm8                      \350\351\361\370\1\x71\74\214\26          AVX512,TFVM
@@ -5551,11 +5561,13 @@ zmmreg_mz,zmmrm,imm8                      \350\351\361\370\1\x71\74\214\26
 
 [VPSRLD]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
-xmmreg_mz,xmmrm,imm8                      \350\361\362\370\1\x72\74\212\26          AVX,SANDYBRIDGE,TFV
+xmmreg_mz,xmmreg,imm8                     \350\361\362\370\1\x72\74\212\26          AVX,SANDYBRIDGE
+xmmreg_mz,mem128,imm8                     \350\361\370\1\x72\74\212\26              AVX512,TFV
 xmmreg_mz,bmem32,imm8                     \350\361\370\1\x72\74\212\26              AVX512,TFV
 xmmreg_mz,xmmreg,xmmrm                    \350\361\362\370\1\xD2\75\120             AVX,SANDYBRIDGE,TMEM128
 ymmreg_mz,ymmreg,xmmrm                    \350\361\362\364\370\1\xD2\75\120         AVX2,TMEM128
-ymmreg_mz,ymmrm,imm8                      \350\361\362\364\370\1\x72\74\212\26      AVX2,TFV
+ymmreg_mz,ymmreg,imm8                     \350\361\362\364\370\1\x72\74\212\26      AVX2,TFV
+ymmreg_mz,mem256,imm8                     \350\361\364\370\1\x72\74\212\26      AVX2,TFV
 ymmreg_mz,bmem32,imm8                     \350\361\364\370\1\x72\74\212\26          AVX512,TFV
 zmmreg_mz,zmmreg,xmmrm                    \350\351\361\370\1\xD2\75\120             AVX512,TMEM128
 zmmreg_mz,zmmrm,imm8                      \350\351\361\370\1\x72\74\212\26          AVX512,TFV
@@ -5575,9 +5587,11 @@ zmmreg,zmmrm,imm8                         \350\351\361\370\1\x73\74\213\26
 [VPSRLQ]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
 xmmreg_mz,xmmreg,xmmrm                    \350\352\361\362\370\1\xD3\75\120         AVX,SANDYBRIDGE,TMEM128
-xmmreg_mz,xmmrm,imm8                      \350\352\361\362\370\1\x73\74\212\26      AVX,SANDYBRIDGE,TFV
+xmmreg_mz,xmmreg,imm8                     \350\352\361\362\370\1\x73\74\212\26      AVX,SANDYBRIDGE
+xmmreg_mz,mem128,imm8                     \350\352\361\370\1\x73\74\212\26          AVX512,TFV
 xmmreg_mz,bmem64,imm8                     \350\352\361\370\1\x73\74\212\26          AVX512,TFV
-ymmreg_mz,ymmrm,imm8                      \350\352\361\362\364\370\1\x73\74\212\26  AVX2,TFV
+ymmreg_mz,ymmreg,imm8                     \350\352\361\362\364\370\1\x73\74\212\26  AVX2
+ymmreg_mz,mem256,imm8                     \350\352\361\364\370\1\x73\74\212\26      AVX512,TFV
 ymmreg_mz,bmem64,imm8                     \350\352\361\364\370\1\x73\74\212\26      AVX512,TFV
 ymmreg_mz,ymmreg,xmmrm                    \350\352\361\362\364\370\1\xD3\75\120     AVX2,TMEM128
 zmmreg_mz,zmmreg,xmmrm                    \350\351\352\361\370\1\xD3\75\120         AVX512,TMEM128
@@ -5587,9 +5601,11 @@ zmmreg_mz,bmem64,imm8                     \350\351\352\361\370\1\x73\74\212\26
 
 [VPSRLW]
 (Ch_Rop1, Ch_Rop2, Ch_Wop3)
-xmmreg_mz,xmmrm,imm8                      \350\361\362\370\1\x71\74\212\26          AVX,SANDYBRIDGE,TFVM
+xmmreg_mz,xmmreg,imm8                     \350\361\362\370\1\x71\74\212\26          AVX,SANDYBRIDGE
+xmmreg_mz,mem128,imm8                     \350\361\370\1\x71\74\212\26              AVX512,TFVM
 xmmreg_mz,xmmreg,xmmrm                    \350\361\362\370\1\xD1\75\120             AVX,SANDYBRIDGE,TMEM128
-ymmreg_mz,ymmrm,imm8                      \350\361\362\364\370\1\x71\74\212\26      AVX2,TFVM
+ymmreg_mz,ymmreg,imm8                     \350\361\362\364\370\1\x71\74\212\26      AVX2
+ymmreg_mz,mem256,imm8                     \350\361\364\370\1\x71\74\212\26          AVX512,TFVM
 ymmreg_mz,ymmreg,xmmrm                    \350\361\362\364\370\1\xD1\75\120         AVX2,TMEM128
 zmmreg_mz,zmmreg,xmmrm                    \350\351\361\370\1\xD1\75\120             AVX512,TMEM128
 zmmreg_mz,zmmrm,imm8                      \350\351\361\370\1\x71\74\212\26          AVX512,TFVM

+ 1 - 1
compiler/x86_64/x8664nop.inc

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

+ 142 - 30
compiler/x86_64/x8664tab.inc

@@ -15389,9 +15389,16 @@
   (
     opcode  : A_VPSLLD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#142#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#142#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSLLD;
@@ -15410,9 +15417,16 @@
   (
     opcode  : A_VPSLLD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#114#60#142#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15501,10 +15515,17 @@
   (
     opcode  : A_VPSLLQ;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,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_memory or ot_bits128,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;
@@ -15522,9 +15543,16 @@
   (
     opcode  : A_VPSLLQ;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#234#241#242#244#248#1#115#60#142#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15564,9 +15592,16 @@
   (
     opcode  : A_VPSLLW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#142#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSLLW;
@@ -15578,9 +15613,16 @@
   (
     opcode  : A_VPSLLW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#142#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSLLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#142#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSLLW;
@@ -15599,9 +15641,16 @@
   (
     opcode  : A_VPSRAD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#140#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#140#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSRAD;
@@ -15620,9 +15669,16 @@
   (
     opcode  : A_VPSRAD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#114#60#140#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRAD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15662,9 +15718,16 @@
   (
     opcode  : A_VPSRAW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#140#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRAW;
@@ -15676,9 +15739,16 @@
   (
     opcode  : A_VPSRAW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#140#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRAW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#140#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRAW;
@@ -15704,9 +15774,16 @@
   (
     opcode  : A_VPSRLD;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#114#60#138#22;
-    flags   : [if_avx,if_sandybridge,if_tfv]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#114#60#138#22;
+    flags   : [if_avx512,if_tfv]
   ),
   (
     opcode  : A_VPSRLD;
@@ -15732,10 +15809,17 @@
   (
     opcode  : A_VPSRLD;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,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_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#114#60#138#22;
+    flags   : [if_avx2,if_tfv]
+  ),
   (
     opcode  : A_VPSRLD;
     ops     : 3;
@@ -15809,9 +15893,16 @@
   (
     opcode  : A_VPSRLQ;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,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]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,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;
@@ -15823,9 +15914,16 @@
   (
     opcode  : A_VPSRLQ;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#234#241#242#244#248#1#115#60#138#22;
-    flags   : [if_avx2,if_tfv]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRLQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,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;
@@ -15865,9 +15963,16 @@
   (
     opcode  : A_VPSRLW;
     ops     : 3;
-    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#248#1#113#60#138#22;
-    flags   : [if_avx,if_sandybridge,if_tfvm]
+    flags   : [if_avx,if_sandybridge]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRLW;
@@ -15879,9 +15984,16 @@
   (
     opcode  : A_VPSRLW;
     ops     : 3;
-    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_immediate or ot_bits8,ot_none);
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_immediate or ot_bits8,ot_none);
     code    : #232#241#242#244#248#1#113#60#138#22;
-    flags   : [if_avx2,if_tfvm]
+    flags   : [if_avx2]
+  ),
+  (
+    opcode  : A_VPSRLW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_memory or ot_bits256,ot_immediate or ot_bits8,ot_none);
+    code    : #232#241#244#248#1#113#60#138#22;
+    flags   : [if_avx512,if_tfvm]
   ),
   (
     opcode  : A_VPSRLW;