summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/globtype.pas4
-rw-r--r--compiler/i386/i386att.inc20
-rw-r--r--compiler/i386/i386atts.inc20
-rw-r--r--compiler/i386/i386int.inc20
-rw-r--r--compiler/i386/i386nop.inc2
-rw-r--r--compiler/i386/i386op.inc20
-rw-r--r--compiler/i386/i386prop.inc20
-rw-r--r--compiler/i386/i386tab.inc1192
-rw-r--r--compiler/i8086/i8086att.inc20
-rw-r--r--compiler/i8086/i8086atts.inc20
-rw-r--r--compiler/i8086/i8086int.inc20
-rw-r--r--compiler/i8086/i8086nop.inc2
-rw-r--r--compiler/i8086/i8086op.inc20
-rw-r--r--compiler/i8086/i8086prop.inc20
-rw-r--r--compiler/i8086/i8086tab.inc1192
-rw-r--r--compiler/x86/aasmcpu.pas11
-rw-r--r--compiler/x86/rax86.pas47
-rw-r--r--compiler/x86/x86ins.dat243
-rw-r--r--compiler/x86_64/x8664ats.inc20
-rw-r--r--compiler/x86_64/x8664att.inc20
-rw-r--r--compiler/x86_64/x8664int.inc20
-rw-r--r--compiler/x86_64/x8664nop.inc2
-rw-r--r--compiler/x86_64/x8664op.inc20
-rw-r--r--compiler/x86_64/x8664pro.inc20
-rw-r--r--compiler/x86_64/x8664tab.inc1192
25 files changed, 4175 insertions, 12 deletions
diff --git a/compiler/globtype.pas b/compiler/globtype.pas
index f4bbd8038f..c73443df3d 100644
--- a/compiler/globtype.pas
+++ b/compiler/globtype.pas
@@ -289,10 +289,10 @@ interface
twpoptimizerswitches = set of twpoptimizerswitch;
type
- { Used by ARM / AVR / MIPSEL to differentiate between specific microcontrollers }
+ { Used by ARM / AVR to differentiate between specific microcontrollers }
tcontrollerdatatype = record
controllertypestr, controllerunitstr: string[20];
- flashbase, flashsize, srambase, sramsize, eeprombase, eepromsize, bootbase, bootsize: dword;
+ flashbase, flashsize, srambase, sramsize, eeprombase, eepromsize: dword;
end;
ttargetswitchinfo = record
diff --git a/compiler/i386/i386att.inc b/compiler/i386/i386att.inc
index ed2f7848a1..354a187ae2 100644
--- a/compiler/i386/i386att.inc
+++ b/compiler/i386/i386att.inc
@@ -951,6 +951,26 @@
'sarx',
'shlx',
'shrx',
+'vbroadcasti128',
+'vextracti128',
+'vinserti128',
+'vpblendd',
+'vpbroadcastb',
+'vpbroadcastd',
+'vpbroadcastq',
+'vpbroadcastw',
+'vperm2i128',
+'vpermd',
+'vpermpd',
+'vpermps',
+'vpermq',
+'vpmaskmovd',
+'vpmaskmovq',
+'vpsllvd',
+'vpsllvq',
+'vpsravd',
+'vpsrlvd',
+'vpsrlvq',
'add4s',
'brkem',
'clr1',
diff --git a/compiler/i386/i386atts.inc b/compiler/i386/i386atts.inc
index 5a53788dd6..944e5635fa 100644
--- a/compiler/i386/i386atts.inc
+++ b/compiler/i386/i386atts.inc
@@ -964,5 +964,25 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
attsufNONE
);
diff --git a/compiler/i386/i386int.inc b/compiler/i386/i386int.inc
index dc4ebb3dd2..aa667b7ab1 100644
--- a/compiler/i386/i386int.inc
+++ b/compiler/i386/i386int.inc
@@ -951,6 +951,26 @@
'sarx',
'shlx',
'shrx',
+'vbroadcasti128',
+'vextracti128',
+'vinserti128',
+'vpblendd',
+'vpbroadcastb',
+'vpbroadcastd',
+'vpbroadcastq',
+'vpbroadcastw',
+'vperm2i128',
+'vpermd',
+'vpermpd',
+'vpermps',
+'vpermq',
+'vpmaskmovd',
+'vpmaskmovq',
+'vpsllvd',
+'vpsllvq',
+'vpsravd',
+'vpsrlvd',
+'vpsrlvq',
'add4s',
'brkem',
'clr1',
diff --git a/compiler/i386/i386nop.inc b/compiler/i386/i386nop.inc
index e670d6a963..2593eab274 100644
--- a/compiler/i386/i386nop.inc
+++ b/compiler/i386/i386nop.inc
@@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
-1658;
+1828;
diff --git a/compiler/i386/i386op.inc b/compiler/i386/i386op.inc
index 48dbdd334d..8af33b19da 100644
--- a/compiler/i386/i386op.inc
+++ b/compiler/i386/i386op.inc
@@ -951,6 +951,26 @@ A_RORX,
A_SARX,
A_SHLX,
A_SHRX,
+A_VBROADCASTI128,
+A_VEXTRACTI128,
+A_VINSERTI128,
+A_VPBLENDD,
+A_VPBROADCASTB,
+A_VPBROADCASTD,
+A_VPBROADCASTQ,
+A_VPBROADCASTW,
+A_VPERM2I128,
+A_VPERMD,
+A_VPERMPD,
+A_VPERMPS,
+A_VPERMQ,
+A_VPMASKMOVD,
+A_VPMASKMOVQ,
+A_VPSLLVD,
+A_VPSLLVQ,
+A_VPSRAVD,
+A_VPSRLVD,
+A_VPSRLVQ,
A_ADD4S,
A_BRKEM,
A_CLR1,
diff --git a/compiler/i386/i386prop.inc b/compiler/i386/i386prop.inc
index 47e1495c0d..5a454e454e 100644
--- a/compiler/i386/i386prop.inc
+++ b/compiler/i386/i386prop.inc
@@ -953,6 +953,26 @@
(Ch: (Ch_Rop1, Ch_Rop2, Ch_Wop3)),
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
diff --git a/compiler/i386/i386tab.inc b/compiler/i386/i386tab.inc
index d9dde010f8..d7dc2dff3f 100644
--- a/compiler/i386/i386tab.inc
+++ b/compiler/i386/i386tab.inc
@@ -8702,6 +8702,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VBROADCASTSD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#25#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VBROADCASTSS;
ops : 2;
optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -8716,6 +8723,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VBROADCASTSS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#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;
+ flags : if_avx2
+ ),
+ (
opcode : A_VCMPPD;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
@@ -8816,7 +8837,7 @@
(
opcode : A_VCVTDQ2PD;
ops : 2;
- optypes : (ot_ymmreg,ot_ymmreg,ot_none,ot_none);
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
code : #219#242#244#248#1#230#72;
flags : if_avx or if_sandybridge
),
@@ -9759,6 +9780,13 @@
flags : if_avx or 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_VMOVNTPD;
ops : 2;
optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
@@ -9948,6 +9976,13 @@
flags : if_avx or 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,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10032,6 +10067,13 @@
flags : if_avx or 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);
@@ -10039,6 +10081,13 @@
flags : if_avx or 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
+ ),
+ (
opcode : A_VPABSW;
ops : 2;
optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
@@ -10046,6 +10095,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPACKSSDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10053,6 +10109,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKSSDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#107#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKSSWB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10060,6 +10123,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKSSWB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#99#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKUSDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10067,6 +10137,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKUSDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#43#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKUSWB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10074,6 +10151,13 @@
flags : if_avx or 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_VPADDB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10081,6 +10165,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPADDD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10088,6 +10179,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPADDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10095,6 +10193,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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
+ ),
+ (
opcode : A_VPADDSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10102,6 +10207,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#236#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10109,6 +10221,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#237#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDUSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10116,6 +10235,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDUSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#220#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDUSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10123,6 +10249,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDUSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#221#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10130,6 +10263,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#253#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPALIGNR;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
@@ -10137,6 +10277,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPAND;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10144,6 +10291,13 @@
flags : if_avx or 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);
@@ -10151,6 +10305,13 @@
flags : if_avx or 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,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10158,6 +10319,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPAVGB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#224#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPAVGW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10165,6 +10333,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPAVGW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#227#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPBLENDVB;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
@@ -10172,6 +10347,13 @@
flags : if_avx or 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);
@@ -10179,6 +10361,13 @@
flags : if_avx or 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);
@@ -10193,6 +10382,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10200,6 +10396,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10207,6 +10410,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10214,6 +10424,13 @@
flags : if_avx or 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);
@@ -10235,6 +10452,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10242,6 +10466,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10249,6 +10480,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10256,6 +10494,13 @@
flags : if_avx or 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);
@@ -10410,6 +10655,13 @@
flags : if_avx or 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);
@@ -10417,6 +10669,13 @@
flags : if_avx or 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);
@@ -10424,6 +10683,13 @@
flags : if_avx or 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);
@@ -10438,6 +10704,13 @@
flags : if_avx or 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);
@@ -10445,6 +10718,13 @@
flags : if_avx or 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);
@@ -10452,6 +10732,13 @@
flags : if_avx or 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);
@@ -10501,6 +10788,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMADDUBSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#4#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMADDWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10508,6 +10802,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMADDWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#245#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10515,6 +10816,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#60#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10522,6 +10830,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#61#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10529,6 +10844,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#238#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXUB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10536,6 +10858,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXUB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#222#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXUD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10543,6 +10872,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMAXUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10550,6 +10886,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10557,6 +10900,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10564,6 +10914,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10571,6 +10928,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10578,6 +10942,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10585,6 +10956,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10592,6 +10970,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMOVMSKB;
ops : 2;
optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
@@ -10606,6 +10991,20 @@
flags : if_avx or 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,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10620,6 +11019,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#33#72;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPMOVSXBD;
+ 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
+ ),
+ (
opcode : A_VPMOVSXBQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
@@ -10634,6 +11047,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVSXBQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#34#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXBW;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10648,6 +11075,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBW;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#32#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXDQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10662,6 +11096,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXDQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#37#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXWD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10676,6 +11117,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXWD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#35#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXWQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10690,6 +11138,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXWQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVSXWQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#36#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10704,6 +11166,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBD;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXBD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#49#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
@@ -10718,6 +11194,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXBQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#50#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBW;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10732,6 +11222,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBW;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#48#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXDQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10746,6 +11243,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXDQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#53#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXWD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10760,6 +11264,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXWD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#51#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXWQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10774,6 +11285,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXWQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXWQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#52#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMULDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10781,6 +11306,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHRSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10788,6 +11320,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10795,6 +11334,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10802,6 +11348,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULLD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10809,6 +11362,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10816,6 +11376,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULUDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10823,6 +11390,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPOR;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10830,6 +11404,13 @@
flags : if_avx or 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);
@@ -10837,6 +11418,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10844,6 +11432,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10851,6 +11446,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFHW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10858,6 +11460,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10865,6 +11474,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSIGNB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10872,6 +11488,13 @@
flags : if_avx or 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);
@@ -10879,6 +11502,13 @@
flags : if_avx or 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);
@@ -10886,6 +11516,13 @@
flags : if_avx or 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,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10900,6 +11537,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSLLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10907,6 +11558,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSLLQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10921,6 +11579,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSLLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10935,6 +11607,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRAD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10949,6 +11635,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRAW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10963,6 +11663,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10977,6 +11691,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10984,6 +11712,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSRLQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10998,6 +11733,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11012,6 +11761,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSUBB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11019,6 +11782,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSUBD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11026,6 +11796,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#250#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11033,6 +11810,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#251#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11040,6 +11824,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#232#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11047,6 +11838,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#233#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBUSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11054,6 +11852,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBUSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#216#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBUSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11061,6 +11866,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBUSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#217#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11068,6 +11880,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#249#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPTEST;
ops : 2;
optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
@@ -11089,6 +11908,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#104#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11096,6 +11922,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#106#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHQDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11103,6 +11936,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHQDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#109#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11110,6 +11950,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#105#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLBW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11117,6 +11964,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#96#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11124,6 +11978,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#98#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLQDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11131,6 +11992,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLQDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#108#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11138,6 +12006,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#97#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPXOR;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11145,6 +12020,13 @@
flags : if_avx or 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);
@@ -11605,5 +12487,313 @@
optypes : (ot_reg32,ot_rm_gpr or ot_bits32,ot_reg32,ot_none);
code : #220#242#249#1#247#62#72;
flags : if_bmi2
+ ),
+ (
+ 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,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#120#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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_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_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_VPBROADCASTD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#88#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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_VPBROADCASTQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#89#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_VPBROADCASTW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#121#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#54#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPERMPD;
+ 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
+ ),
+ (
+ opcode : A_VPERMPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#22#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPERMQ;
+ 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
+ ),
+ (
+ 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_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#243#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#243#244#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRAVD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#70#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRAVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#70#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#243#244#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#243#249#1#69#61#80;
+ flags : if_avx2
)
);
diff --git a/compiler/i8086/i8086att.inc b/compiler/i8086/i8086att.inc
index ed2f7848a1..354a187ae2 100644
--- a/compiler/i8086/i8086att.inc
+++ b/compiler/i8086/i8086att.inc
@@ -951,6 +951,26 @@
'sarx',
'shlx',
'shrx',
+'vbroadcasti128',
+'vextracti128',
+'vinserti128',
+'vpblendd',
+'vpbroadcastb',
+'vpbroadcastd',
+'vpbroadcastq',
+'vpbroadcastw',
+'vperm2i128',
+'vpermd',
+'vpermpd',
+'vpermps',
+'vpermq',
+'vpmaskmovd',
+'vpmaskmovq',
+'vpsllvd',
+'vpsllvq',
+'vpsravd',
+'vpsrlvd',
+'vpsrlvq',
'add4s',
'brkem',
'clr1',
diff --git a/compiler/i8086/i8086atts.inc b/compiler/i8086/i8086atts.inc
index 5a53788dd6..944e5635fa 100644
--- a/compiler/i8086/i8086atts.inc
+++ b/compiler/i8086/i8086atts.inc
@@ -964,5 +964,25 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
attsufNONE
);
diff --git a/compiler/i8086/i8086int.inc b/compiler/i8086/i8086int.inc
index dc4ebb3dd2..aa667b7ab1 100644
--- a/compiler/i8086/i8086int.inc
+++ b/compiler/i8086/i8086int.inc
@@ -951,6 +951,26 @@
'sarx',
'shlx',
'shrx',
+'vbroadcasti128',
+'vextracti128',
+'vinserti128',
+'vpblendd',
+'vpbroadcastb',
+'vpbroadcastd',
+'vpbroadcastq',
+'vpbroadcastw',
+'vperm2i128',
+'vpermd',
+'vpermpd',
+'vpermps',
+'vpermq',
+'vpmaskmovd',
+'vpmaskmovq',
+'vpsllvd',
+'vpsllvq',
+'vpsravd',
+'vpsrlvd',
+'vpsrlvq',
'add4s',
'brkem',
'clr1',
diff --git a/compiler/i8086/i8086nop.inc b/compiler/i8086/i8086nop.inc
index 80c4fcebce..a30a9a4065 100644
--- a/compiler/i8086/i8086nop.inc
+++ b/compiler/i8086/i8086nop.inc
@@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
-1686;
+1856;
diff --git a/compiler/i8086/i8086op.inc b/compiler/i8086/i8086op.inc
index 48dbdd334d..8af33b19da 100644
--- a/compiler/i8086/i8086op.inc
+++ b/compiler/i8086/i8086op.inc
@@ -951,6 +951,26 @@ A_RORX,
A_SARX,
A_SHLX,
A_SHRX,
+A_VBROADCASTI128,
+A_VEXTRACTI128,
+A_VINSERTI128,
+A_VPBLENDD,
+A_VPBROADCASTB,
+A_VPBROADCASTD,
+A_VPBROADCASTQ,
+A_VPBROADCASTW,
+A_VPERM2I128,
+A_VPERMD,
+A_VPERMPD,
+A_VPERMPS,
+A_VPERMQ,
+A_VPMASKMOVD,
+A_VPMASKMOVQ,
+A_VPSLLVD,
+A_VPSLLVQ,
+A_VPSRAVD,
+A_VPSRLVD,
+A_VPSRLVQ,
A_ADD4S,
A_BRKEM,
A_CLR1,
diff --git a/compiler/i8086/i8086prop.inc b/compiler/i8086/i8086prop.inc
index 47e1495c0d..5a454e454e 100644
--- a/compiler/i8086/i8086prop.inc
+++ b/compiler/i8086/i8086prop.inc
@@ -953,6 +953,26 @@
(Ch: (Ch_Rop1, Ch_Rop2, Ch_Wop3)),
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
diff --git a/compiler/i8086/i8086tab.inc b/compiler/i8086/i8086tab.inc
index a661cd5fd5..343b67499f 100644
--- a/compiler/i8086/i8086tab.inc
+++ b/compiler/i8086/i8086tab.inc
@@ -8702,6 +8702,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VBROADCASTSD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#25#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VBROADCASTSS;
ops : 2;
optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -8716,6 +8723,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VBROADCASTSS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#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;
+ flags : if_avx2
+ ),
+ (
opcode : A_VCMPPD;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
@@ -8816,7 +8837,7 @@
(
opcode : A_VCVTDQ2PD;
ops : 2;
- optypes : (ot_ymmreg,ot_ymmreg,ot_none,ot_none);
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
code : #219#242#244#248#1#230#72;
flags : if_avx or if_sandybridge
),
@@ -9759,6 +9780,13 @@
flags : if_avx or 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_VMOVNTPD;
ops : 2;
optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
@@ -9948,6 +9976,13 @@
flags : if_avx or 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,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10032,6 +10067,13 @@
flags : if_avx or 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);
@@ -10039,6 +10081,13 @@
flags : if_avx or 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
+ ),
+ (
opcode : A_VPABSW;
ops : 2;
optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
@@ -10046,6 +10095,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPACKSSDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10053,6 +10109,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKSSDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#107#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKSSWB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10060,6 +10123,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKSSWB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#99#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKUSDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10067,6 +10137,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKUSDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#43#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKUSWB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10074,6 +10151,13 @@
flags : if_avx or 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_VPADDB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10081,6 +10165,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPADDD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10088,6 +10179,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPADDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10095,6 +10193,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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
+ ),
+ (
opcode : A_VPADDSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10102,6 +10207,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#236#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10109,6 +10221,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#237#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDUSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10116,6 +10235,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDUSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#220#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDUSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10123,6 +10249,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDUSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#221#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10130,6 +10263,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#253#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPALIGNR;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
@@ -10137,6 +10277,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPAND;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10144,6 +10291,13 @@
flags : if_avx or 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);
@@ -10151,6 +10305,13 @@
flags : if_avx or 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,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10158,6 +10319,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPAVGB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#224#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPAVGW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10165,6 +10333,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPAVGW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#227#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPBLENDVB;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
@@ -10172,6 +10347,13 @@
flags : if_avx or 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);
@@ -10179,6 +10361,13 @@
flags : if_avx or 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);
@@ -10193,6 +10382,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10200,6 +10396,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10207,6 +10410,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10214,6 +10424,13 @@
flags : if_avx or 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);
@@ -10235,6 +10452,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10242,6 +10466,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10249,6 +10480,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10256,6 +10494,13 @@
flags : if_avx or 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);
@@ -10410,6 +10655,13 @@
flags : if_avx or 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);
@@ -10417,6 +10669,13 @@
flags : if_avx or 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);
@@ -10424,6 +10683,13 @@
flags : if_avx or 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);
@@ -10438,6 +10704,13 @@
flags : if_avx or 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);
@@ -10445,6 +10718,13 @@
flags : if_avx or 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);
@@ -10452,6 +10732,13 @@
flags : if_avx or 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);
@@ -10501,6 +10788,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMADDUBSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#4#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMADDWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10508,6 +10802,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMADDWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#245#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10515,6 +10816,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#60#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10522,6 +10830,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#61#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10529,6 +10844,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#238#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXUB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10536,6 +10858,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXUB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#222#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXUD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10543,6 +10872,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMAXUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10550,6 +10886,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10557,6 +10900,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10564,6 +10914,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10571,6 +10928,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10578,6 +10942,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10585,6 +10956,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10592,6 +10970,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMOVMSKB;
ops : 2;
optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
@@ -10606,6 +10991,20 @@
flags : if_avx or 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,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10620,6 +11019,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#33#72;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPMOVSXBD;
+ 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
+ ),
+ (
opcode : A_VPMOVSXBQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
@@ -10634,6 +11047,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVSXBQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#34#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXBW;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10648,6 +11075,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBW;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#32#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXDQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10662,6 +11096,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXDQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#37#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXWD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10676,6 +11117,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXWD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#35#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXWQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10690,6 +11138,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXWQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVSXWQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#36#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10704,6 +11166,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBD;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXBD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#49#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
@@ -10718,6 +11194,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXBQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#50#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBW;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10732,6 +11222,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBW;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#48#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXDQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10746,6 +11243,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXDQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#53#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXWD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10760,6 +11264,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXWD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#51#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXWQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10774,6 +11285,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXWQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXWQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#52#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMULDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10781,6 +11306,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHRSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10788,6 +11320,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10795,6 +11334,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10802,6 +11348,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULLD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10809,6 +11362,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10816,6 +11376,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULUDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10823,6 +11390,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPOR;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10830,6 +11404,13 @@
flags : if_avx or 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);
@@ -10837,6 +11418,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10844,6 +11432,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10851,6 +11446,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFHW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10858,6 +11460,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10865,6 +11474,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSIGNB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10872,6 +11488,13 @@
flags : if_avx or 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);
@@ -10879,6 +11502,13 @@
flags : if_avx or 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);
@@ -10886,6 +11516,13 @@
flags : if_avx or 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,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10900,6 +11537,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSLLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10907,6 +11558,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSLLQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10921,6 +11579,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSLLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10935,6 +11607,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRAD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10949,6 +11635,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRAW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10963,6 +11663,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10977,6 +11691,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10984,6 +11712,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSRLQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -10998,6 +11733,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11012,6 +11761,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSUBB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11019,6 +11782,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSUBD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11026,6 +11796,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#250#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11033,6 +11810,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#251#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11040,6 +11824,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#232#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11047,6 +11838,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#233#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBUSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11054,6 +11852,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBUSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#216#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBUSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11061,6 +11866,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBUSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#217#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11068,6 +11880,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#249#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPTEST;
ops : 2;
optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
@@ -11089,6 +11908,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#104#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11096,6 +11922,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#106#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHQDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11103,6 +11936,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHQDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#109#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11110,6 +11950,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#105#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLBW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11117,6 +11964,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#96#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11124,6 +11978,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#98#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLQDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11131,6 +11992,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLQDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#108#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11138,6 +12006,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#97#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPXOR;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11145,6 +12020,13 @@
flags : if_avx or 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);
@@ -11607,6 +12489,314 @@
flags : if_bmi2
),
(
+ 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,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#120#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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_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_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_VPBROADCASTD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#88#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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_VPBROADCASTQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#89#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_VPBROADCASTW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#121#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#54#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPERMPD;
+ 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
+ ),
+ (
+ opcode : A_VPERMPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#22#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPERMQ;
+ 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
+ ),
+ (
+ 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_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#243#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#243#244#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRAVD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#70#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRAVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#70#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#243#244#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#243#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_ADD4S;
ops : 0;
optypes : (ot_none,ot_none,ot_none,ot_none);
diff --git a/compiler/x86/aasmcpu.pas b/compiler/x86/aasmcpu.pas
index 4487258d19..8b9b49aaca 100644
--- a/compiler/x86/aasmcpu.pas
+++ b/compiler/x86/aasmcpu.pas
@@ -227,7 +227,7 @@ interface
TMemRefSizeInfo = (msiUnkown, msiUnsupported, msiNoSize,
msiMultiple, msiMultiple8, msiMultiple16, msiMultiple32,
msiMultiple64, msiMultiple128, msiMultiple256,
- msiMemRegSize, msiMemRegx64y128, msiMemRegx64y256,
+ msiMemRegSize, msiMemRegx16y32, msiMemRegx32y64, msiMemRegx64y128, msiMemRegx64y256,
msiMem8, msiMem16, msiMem32, msiMem64, msiMem128, msiMem256);
TConstSizeInfo = (csiUnkown, csiMultiple, csiNoSize, csiMem8, csiMem16, csiMem32, csiMem64);
@@ -427,6 +427,7 @@ implementation
IF_SSE41 = $00200000;
IF_SSE42 = $00200000;
IF_AVX = $00200000;
+ IF_AVX2 = $00200000;
IF_BMI1 = $00200000;
IF_BMI2 = $00200000;
IF_16BITONLY = $00200000;
@@ -3247,7 +3248,7 @@ implementation
actConstSize := 0;
actConstCount := 0;
- if asmop = a_movups then
+ if asmop = a_vpmovzxbq then
begin
RegXMMSizeMask := RegXMMSizeMask;
end;
@@ -3397,6 +3398,12 @@ implementation
(InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX)then
begin
case RegXMMSizeMask of
+ OT_BITS16: case RegYMMSizeMask of
+ OT_BITS32: InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiMemRegx16y32;
+ end;
+ OT_BITS32: case RegYMMSizeMask of
+ OT_BITS64: InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiMemRegx32y64;
+ end;
OT_BITS64: case RegYMMSizeMask of
OT_BITS128: InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiMemRegx64y128;
OT_BITS256: InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := msiMemRegx64y256;
diff --git a/compiler/x86/rax86.pas b/compiler/x86/rax86.pas
index 63302cc99c..391ed7ad05 100644
--- a/compiler/x86/rax86.pas
+++ b/compiler/x86/rax86.pas
@@ -591,6 +591,51 @@ begin
end;
end;
end;
+ msiMemRegx16y32:
+ begin
+ for j := 1 to ops do
+ begin
+ if operands[j].Opr.Typ = OPR_REGISTER then
+ begin
+ case getsubreg(operands[j].opr.reg) of
+ R_SUBMMX: begin
+ tx86operand(operands[i]).opsize := S_L;
+ tx86operand(operands[i]).size := OS_M16;
+ break;
+ end;
+ R_SUBMMY: begin
+ tx86operand(operands[i]).opsize := S_Q;
+ tx86operand(operands[i]).size := OS_M32;
+ break;
+ end;
+ else Message(asmr_e_unable_to_determine_reference_size);
+ end;
+ end;
+ end;
+ end;
+
+ msiMemRegx32y64:
+ begin
+ for j := 1 to ops do
+ begin
+ if operands[j].Opr.Typ = OPR_REGISTER then
+ begin
+ case getsubreg(operands[j].opr.reg) of
+ R_SUBMMX: begin
+ tx86operand(operands[i]).opsize := S_L;
+ tx86operand(operands[i]).size := OS_M32;
+ break;
+ end;
+ R_SUBMMY: begin
+ tx86operand(operands[i]).opsize := S_Q;
+ tx86operand(operands[i]).size := OS_M64;
+ break;
+ end;
+ else Message(asmr_e_unable_to_determine_reference_size);
+ end;
+ end;
+ end;
+ end;
msiMemRegx64y128:
begin
for j := 1 to ops do
@@ -1139,7 +1184,7 @@ begin
case operands[i].size of
OS_8,OS_S8 :
asize:=OT_BITS8;
- OS_16,OS_S16 :
+ OS_16,OS_S16, OS_M16:
asize:=OT_BITS16;
OS_32,OS_S32,OS_F32,OS_M32 :
asize:=OT_BITS32;
diff --git a/compiler/x86/x86ins.dat b/compiler/x86/x86ins.dat
index d4ba5cbab5..b4e6c90461 100644
--- a/compiler/x86/x86ins.dat
+++ b/compiler/x86/x86ins.dat
@@ -3552,11 +3552,14 @@ ymmreg,mem128 \361\362\364\371\1\x1A\110 AVX,SA
[VBROADCASTSD]
(Ch_All, Ch_None, Ch_None)
ymmreg,mem64 \361\362\364\371\1\x19\110 AVX,SANDYBRIDGE
+ymmreg,xmmreg \361\362\364\371\1\x19\110 AVX2
[VBROADCASTSS]
(Ch_All, Ch_None, Ch_None)
ymmreg,mem32 \361\362\364\371\1\x18\110 AVX,SANDYBRIDGE
xmmreg,mem32 \361\362\371\1\x18\110 AVX,SANDYBRIDGE
+ymmreg,xmmreg \361\362\364\371\1\x18\110 AVX2
+xmmreg,xmmreg \361\362\371\1\x18\110 AVX2
[VCMPPD]
(Ch_All, Ch_None, Ch_None)
@@ -3592,7 +3595,7 @@ xmmreg,xmmreg \362\370\1\x2F\110 AVX,SA
(Ch_All, Ch_None, Ch_None)
xmmreg,mem64 \333\362\370\1\xE6\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \333\362\370\1\xE6\110 AVX,SANDYBRIDGE
-ymmreg,ymmreg \333\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
+ymmreg,xmmreg \333\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
ymmreg,mem128 \333\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
[VCVTDQ2PS]
@@ -3901,6 +3904,7 @@ mem256,ymmreg \361\362\364\370\1\xE7\101 AVX,SA
[VMOVNTDQA]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,mem128 \361\362\371\1\x2A\110 AVX,SANDYBRIDGE
+ymmreg,mem256 \361\362\364\371\1\x2A\110 AVX2
[VMOVNTPD]
(Ch_Wop2, Ch_Rop1, Ch_None)
@@ -3960,6 +3964,7 @@ ymmrm,ymmreg \362\364\370\1\x11\101 AVX,SA
[VMPSADBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x42\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x42\75\120\27 AVX2
[VMULPD]
(Ch_Wop3, Ch_Rop2, Ch_Rop1)
@@ -3993,90 +3998,112 @@ ymmreg,ymmreg,ymmrm \362\364\370\1\x56\75\120 AVX,SA
[VPABSB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm \361\362\371\1\x1C\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\371\1\x1C\110 AVX2
[VPABSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm \361\362\371\1\x1E\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\371\1\x1E\110 AVX2
[VPABSW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm \361\362\371\1\x1D\110 AVX,SANDYBRIDGE
+ymmreg,ymmrm \361\362\364\371\1\x1D\110 AVX2
[VPACKSSDW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x6B\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x6B\75\120 AVX2
[VPACKSSWB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x63\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x63\75\120 AVX2
[VPACKUSDW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x2B\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x2B\75\120 AVX2
[VPACKUSWB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x67\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x67\75\120 AVX2
[VPADDB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xFC\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xFC\75\120 AVX2
[VPADDD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xFE\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xFE\75\120 AVX2
[VPADDQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xD4\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xD4\75\120 AVX2
[VPADDSB]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xEC\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xEC\75\120 AVX2
[VPADDSW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xED\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xED\75\120 AVX2
[VPADDUSB]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xDC\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xDC\75\120 AVX2
[VPADDUSW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xDD\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xDD\75\120 AVX2
[VPADDW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xFD\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xFD\75\120 AVX2
[VPALIGNR]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x0F\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x0F\75\120\27 AVX2
[VPAND]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xDB\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xDB\75\120 AVX2
[VPANDN]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xDF\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xDF\75\120 AVX2
[VPAVGB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xE0\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xE0\75\120 AVX2
[VPAVGW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xE3\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xE3\75\120 AVX2
[VPBLENDVB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm,xmmreg \361\362\372\1\x4C\75\120\367 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,ymmreg \361\362\364\372\1\x4C\75\120\367 AVX2
[VPBLENDW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x0E\75\120\27 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x0E\75\120\27 AVX2
[VPCLMULQDQ]
(Ch_All, Ch_None, Ch_None)
@@ -4085,18 +4112,22 @@ xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x44\75\120\27 AVX,SA
[VPCMPEQB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x74\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x74\75\120 AVX2
[VPCMPEQD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x76\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x76\75\120 AVX2
[VPCMPEQQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x29\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x29\75\120 AVX2
[VPCMPEQW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x75\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x75\75\120 AVX2
[VPCMPESTRI]
(Ch_All, Ch_None, Ch_None)
@@ -4109,18 +4140,22 @@ xmmreg,xmmrm,imm8 \361\362\372\1\x60\110\26 AVX,SA
[VPCMPGTB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x64\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x64\75\120 AVX2
[VPCMPGTD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x66\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x66\75\120 AVX2
[VPCMPGTQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x37\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x37\75\120 AVX2
[VPCMPGTW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x65\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x65\75\120 AVX2
[VPCMPISTRI]
(Ch_All, Ch_None, Ch_None)
@@ -4174,14 +4209,17 @@ mem16,xmmreg,imm8 \361\362\372\1\x15\101\26 AVX,SA
[VPHADDD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x02\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x02\75\120 AVX2
[VPHADDSW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x03\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x03\75\120 AVX2
[VPHADDW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x01\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x01\75\120 AVX2
[VPHMINPOSUW]
(Ch_All, Ch_None, Ch_None)
@@ -4190,14 +4228,17 @@ xmmreg,xmmrm \361\362\371\1\x41\110 AVX,SA
[VPHSUBD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x06\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x06\75\120 AVX2
[VPHSUBSW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x07\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x07\75\120 AVX2
[VPHSUBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x05\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x05\75\120 AVX2
[VPINSRB]
(Ch_All, Ch_None, Ch_None)
@@ -4220,267 +4261,347 @@ xmmreg,xmmreg,mem16,imm8 \361\362\370\1\xC4\75\120\27 AVX,SA
[VPMADDUBSW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x04\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x04\75\120 AVX2
[VPMADDWD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xF5\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xF5\75\120 AVX2
[VPMAXSB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x3C\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x3C\75\120 AVX2
[VPMAXSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x3D\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x3D\75\120 AVX2
[VPMAXSW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xEE\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xEE\75\120 AVX2
[VPMAXUB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xDE\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xDE\75\120 AVX2
[VPMAXUD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x3F\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x3F\75\120 AVX2
[VPMAXUW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x3E\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x3E\75\120 AVX2
[VPMINSB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x38\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x38\75\120 AVX2
[VPMINSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x39\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x39\75\120 AVX2
[VPMINSW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xEA\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xEA\75\120 AVX2
[VPMINUB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xDA\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xDA\75\120 AVX2
[VPMINUD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x3B\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x3B\75\120 AVX2
[VPMINUW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x3A\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x3A\75\120 AVX2
[VPMOVMSKB]
(Ch_All, Ch_None, Ch_None)
reg64,xmmreg \361\362\370\1\xD7\110 AVX,SANDYBRIDGE
reg32,xmmreg \361\362\370\1\xD7\110 AVX,SANDYBRIDGE
+reg32,ymmreg \361\362\364\370\1\xD7\110 AVX2
+reg64,ymmreg \361\362\364\370\1\xD7\110 AVX2
[VPMOVSXBD]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem32 \361\362\371\1\x21\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x21\110 AVX,SANDYBRIDGE
+ymmreg,xmmreg \361\362\364\371\1\x21\110 AVX2
+ymmreg,mem64 \361\362\364\371\1\x21\110 AVX2
[VPMOVSXBQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem16 \361\362\371\1\x22\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x22\110 AVX,SANDYBRIDGE
+ymmreg,mem32 \361\362\364\371\1\x22\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x22\110 AVX2
[VPMOVSXBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem64 \361\362\371\1\x20\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x20\110 AVX,SANDYBRIDGE
+ymmreg,xmmrm \361\362\364\371\1\x20\110 AVX2
[VPMOVSXDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem64 \361\362\371\1\x25\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x25\110 AVX,SANDYBRIDGE
+ymmreg,xmmrm \361\362\364\371\1\x25\110 AVX2
[VPMOVSXWD]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem64 \361\362\371\1\x23\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x23\110 AVX,SANDYBRIDGE
+ymmreg,xmmrm \361\362\364\371\1\x23\110 AVX2
[VPMOVSXWQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem32 \361\362\371\1\x24\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x24\110 AVX,SANDYBRIDGE
+ymmreg,mem64 \361\362\364\371\1\x24\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x24\110 AVX2
[VPMOVZXBD]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem32 \361\362\371\1\x31\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x31\110 AVX,SANDYBRIDGE
+ymmreg,mem64 \361\362\364\371\1\x31\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x31\110 AVX2
[VPMOVZXBQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem16 \361\362\371\1\x32\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x32\110 AVX,SANDYBRIDGE
+ymmreg,mem32 \361\362\364\371\1\x32\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x32\110 AVX2
[VPMOVZXBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem64 \361\362\371\1\x30\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x30\110 AVX,SANDYBRIDGE
+ymmreg,xmmrm \361\362\364\371\1\x30\110 AVX2
[VPMOVZXDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem64 \361\362\371\1\x35\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x35\110 AVX,SANDYBRIDGE
+ymmreg,xmmrm \361\362\364\371\1\x35\110 AVX2
[VPMOVZXWD]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem64 \361\362\371\1\x33\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x33\110 AVX,SANDYBRIDGE
+ymmreg,xmmrm \361\362\364\371\1\x33\110 AVX2
[VPMOVZXWQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem32 \361\362\371\1\x34\110 AVX,SANDYBRIDGE
xmmreg,xmmreg \361\362\371\1\x34\110 AVX,SANDYBRIDGE
+ymmreg,mem64 \361\362\364\371\1\x34\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x34\110 AVX2
+
[VPMULDQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\371\1\x28\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x28\75\120 AVX2
[VPMULHRSW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\371\1\x0B\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x0B\75\120 AVX2
[VPMULHUW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xE4\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xE4\75\120 AVX2
[VPMULHW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xE5\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xE5\75\120 AVX2
[VPMULLD]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\371\1\x40\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x40\75\120 AVX2
[VPMULLW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xD5\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xD5\75\120 AVX2
[VPMULUDQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xF4\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xF4\75\120 AVX2
[VPOR]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xEB\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xEB\75\120 AVX2
[VPSADBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\xF6\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xF6\75\120 AVX2
[VPSHUFB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x00\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x00\75\120 AVX2
[VPSHUFD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm8 \361\362\370\1\x70\110\26 AVX,SANDYBRIDGE
+ymmreg,ymmrm,imm8 \361\362\364\370\1\x70\110\26 AVX2
[VPSHUFHW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm8 \333\362\370\1\x70\110\26 AVX,SANDYBRIDGE
+ymmreg,ymmrm,imm8 \333\362\364\370\1\x70\110\26 AVX2
[VPSHUFLW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm8 \334\362\370\1\x70\110\26 AVX,SANDYBRIDGE
+ymmreg,ymmrm,imm8 \334\362\364\370\1\x70\110\26 AVX2
[VPSIGNB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x08\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x08\75\120 AVX2
[VPSIGND]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x0A\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x0A\75\120 AVX2
[VPSIGNW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\371\1\x09\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x09\75\120 AVX2
[VPSLLD]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x72\74\216\26 AVX,SANDYBRIDGE
xmmreg,xmmreg,xmmrm \361\362\370\1\xF2\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x72\74\216\26 AVX2
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xF2\75\120 AVX2
[VPSLLDQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\217\26 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x73\74\217\26 AVX2
+
[VPSLLQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xF3\75\120 AVX,SANDYBRIDGE
xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\216\26 AVX,SANDYBRIDGE
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xF3\75\120 AVX2
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x73\74\216\26 AVX2
[VPSLLW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x71\74\216\26 AVX,SANDYBRIDGE
xmmreg,xmmreg,xmmrm \361\362\370\1\xF1\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x71\74\216\26 AVX2
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xF1\75\120 AVX2
+
[VPSRAD]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x72\74\214\26 AVX,SANDYBRIDGE
xmmreg,xmmreg,xmmrm \361\362\370\1\xE2\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x72\74\214\26 AVX2
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xE2\75\120 AVX2
[VPSRAW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x71\74\214\26 AVX,SANDYBRIDGE
xmmreg,xmmreg,xmmrm \361\362\370\1\xE1\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x71\74\214\26 AVX2
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xE1\75\120 AVX2
[VPSRLD]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x72\74\212\26 AVX,SANDYBRIDGE
xmmreg,xmmreg,xmmrm \361\362\370\1\xD2\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x72\74\212\26 AVX2
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xD2\75\120 AVX2
+
[VPSRLDQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\213\26 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x73\74\213\26 AVX2
[VPSRLQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x73\74\212\26 AVX,SANDYBRIDGE
xmmreg,xmmreg,xmmrm \361\362\370\1\xD3\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x73\74\212\26 AVX2
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xD3\75\120 AVX2
[VPSRLW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,imm8 \361\362\370\1\x71\74\212\26 AVX,SANDYBRIDGE
xmmreg,xmmreg,xmmrm \361\362\370\1\xD1\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,imm8 \361\362\364\370\1\x71\74\212\26 AVX2
+ymmreg,ymmreg,xmmrm \361\362\364\370\1\xD1\75\120 AVX2
[VPSUBB]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xF8\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xF8\75\120 AVX2
[VPSUBD]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xFA\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xFA\75\120 AVX2
[VPSUBQ]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xFB\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xFB\75\120 AVX2
[VPSUBSB]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xE8\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xE8\75\120 AVX2
[VPSUBSW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xE9\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xE9\75\120 AVX2
[VPSUBUSB]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xD8\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xD8\75\120 AVX2
[VPSUBUSW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xD9\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xD9\75\120 AVX2
[VPSUBW]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xF9\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xF9\75\120 AVX2
[VPTEST]
(Ch_All, Ch_None, Ch_None)
@@ -4490,38 +4611,47 @@ xmmreg,xmmrm \361\362\371\1\x17\110 AVX,SA
[VPUNPCKHBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x68\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x68\75\120 AVX2
[VPUNPCKHDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x6A\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x6A\75\120 AVX2
[VPUNPCKHQDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x6D\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x6D\75\120 AVX2
[VPUNPCKHWD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x69\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x69\75\120 AVX2
[VPUNPCKLBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x60\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x60\75\120 AVX2
[VPUNPCKLDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x62\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x62\75\120 AVX2
[VPUNPCKLQDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x6C\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x6C\75\120 AVX2
[VPUNPCKLWD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg,xmmrm \361\362\370\1\x61\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\x61\75\120 AVX2
[VPXOR]
(Ch_Rop1, Ch_Rop2, Ch_Wop3)
xmmreg,xmmreg,xmmrm \361\362\370\1\xEF\75\120 AVX,SANDYBRIDGE
+ymmreg,ymmreg,ymmrm \361\362\364\370\1\xEF\75\120 AVX2
[VRCPPS]
(Ch_All, Ch_None, Ch_None)
@@ -4717,6 +4847,117 @@ reg64,rm64,reg64 \361\362\363\371\1\xf7\76\110 BMI2,X
reg32,rm32,reg32 \334\362\371\1\xf7\76\110 BMI2
reg64,rm64,reg64 \334\362\363\371\1\xf7\76\110 BMI2,X86_64
+
+;*******************************************************************************
+;********** AVX2 ***************************************************************
+;*******************************************************************************
+
+[VBROADCASTI128]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,mem128 \361\362\364\371\1\x5A\110 AVX2
+
+[VEXTRACTI128]
+(Ch_All, Ch_None, Ch_None)
+xmmrm,ymmreg,imm8 \361\362\364\372\1\x39\101\26 AVX2
+
+[VINSERTI128]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,xmmrm,imm8 \361\362\364\372\1\x38\75\120\27 AVX2
+
+[VPBLENDD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x02\75\120\27 AVX2
+xmmreg,xmmreg,xmmrm,imm8 \361\362\372\1\x02\75\120\27 AVX2
+
+[VPBROADCASTB]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg \361\362\371\1\x78\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x78\110 AVX2
+xmmreg,mem8 \361\362\371\1\x78\110 AVX2
+ymmreg,mem8 \361\362\364\371\1\x78\110 AVX2
+
+[VPBROADCASTD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,xmmreg \361\362\364\371\1\x58\110 AVX2
+xmmreg,mem32 \361\362\371\1\x58\110 AVX2
+xmmreg,xmmreg \361\362\371\1\x58\110 AVX2
+ymmreg,mem32 \361\362\364\371\1\x58\110 AVX2
+
+[VPBROADCASTQ]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,mem64 \361\362\364\371\1\x59\110 AVX2
+xmmreg,mem64 \361\362\371\1\x59\110 AVX2
+xmmreg,xmmreg \361\362\371\1\x59\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x59\110 AVX2
+
+[VPBROADCASTW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem16 \361\362\371\1\x79\110 AVX2
+xmmreg,xmmreg \361\362\371\1\x79\110 AVX2
+ymmreg,mem16 \361\362\364\371\1\x79\110 AVX2
+ymmreg,xmmreg \361\362\364\371\1\x79\110 AVX2
+
+[VPERM2I128]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm,imm8 \361\362\364\372\1\x46\75\120\27 AVX2
+
+[VPERMD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x36\75\120 AVX2
+
+[VPERMPD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm,imm8 \361\362\363\364\372\1\x01\110\26 AVX2
+
+[VPERMPS]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x16\75\120 AVX2
+
+[VPERMQ]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmrm,imm8 \361\362\363\364\372\1\x00\110\26 AVX2
+
+[VPMASKMOVD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem128 \361\362\371\1\x8C\75\120 AVX2
+mem128,xmmreg,xmmreg \361\362\371\1\x8E\75\102 AVX2
+ymmreg,ymmreg,mem256 \361\362\364\371\1\x8C\75\120 AVX2
+mem256,ymmreg,ymmreg \361\362\364\371\1\x8E\75\102 AVX2
+
+[VPMASKMOVQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,mem128 \361\362\363\371\1\x8C\75\120 AVX2
+mem128,xmmreg,xmmreg \361\362\363\371\1\x8E\75\102 AVX2
+mem256,ymmreg,ymmreg \361\362\363\364\371\1\x8E\75\102 AVX2
+ymmreg,ymmreg,mem256 \361\362\363\364\371\1\x8C\75\120 AVX2
+
+[VPSLLVD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x47\75\120 AVX2
+xmmreg,xmmreg,xmmrm \361\362\371\1\x47\75\120 AVX2
+
+[VPSLLVQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,xmmrm \361\362\363\371\1\x47\75\120 AVX2
+ymmreg,ymmreg,ymmrm \361\362\363\364\371\1\x47\75\120 AVX2
+
+[VPSRAVD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x46\75\120 AVX2
+xmmreg,xmmreg,xmmrm \361\362\371\1\x46\75\120 AVX2
+
+[VPSRLVD]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\364\371\1\x45\75\120 AVX2
+xmmreg,xmmreg,xmmrm \361\362\371\1\x45\75\120 AVX2
+
+[VPSRLVQ]
+(Ch_All, Ch_None, Ch_None)
+ymmreg,ymmreg,ymmrm \361\362\363\364\371\1\x45\75\120 AVX2
+xmmreg,xmmreg,xmmrm \361\362\363\371\1\x45\75\120 AVX2
+
+
+
;*******************************************************************************
;********** NEC V20/V30 ********************************************************
;*******************************************************************************
diff --git a/compiler/x86_64/x8664ats.inc b/compiler/x86_64/x8664ats.inc
index 5a53788dd6..944e5635fa 100644
--- a/compiler/x86_64/x8664ats.inc
+++ b/compiler/x86_64/x8664ats.inc
@@ -964,5 +964,25 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
attsufNONE
);
diff --git a/compiler/x86_64/x8664att.inc b/compiler/x86_64/x8664att.inc
index ed2f7848a1..354a187ae2 100644
--- a/compiler/x86_64/x8664att.inc
+++ b/compiler/x86_64/x8664att.inc
@@ -951,6 +951,26 @@
'sarx',
'shlx',
'shrx',
+'vbroadcasti128',
+'vextracti128',
+'vinserti128',
+'vpblendd',
+'vpbroadcastb',
+'vpbroadcastd',
+'vpbroadcastq',
+'vpbroadcastw',
+'vperm2i128',
+'vpermd',
+'vpermpd',
+'vpermps',
+'vpermq',
+'vpmaskmovd',
+'vpmaskmovq',
+'vpsllvd',
+'vpsllvq',
+'vpsravd',
+'vpsrlvd',
+'vpsrlvq',
'add4s',
'brkem',
'clr1',
diff --git a/compiler/x86_64/x8664int.inc b/compiler/x86_64/x8664int.inc
index dc4ebb3dd2..aa667b7ab1 100644
--- a/compiler/x86_64/x8664int.inc
+++ b/compiler/x86_64/x8664int.inc
@@ -951,6 +951,26 @@
'sarx',
'shlx',
'shrx',
+'vbroadcasti128',
+'vextracti128',
+'vinserti128',
+'vpblendd',
+'vpbroadcastb',
+'vpbroadcastd',
+'vpbroadcastq',
+'vpbroadcastw',
+'vperm2i128',
+'vpermd',
+'vpermpd',
+'vpermps',
+'vpermq',
+'vpmaskmovd',
+'vpmaskmovq',
+'vpsllvd',
+'vpsllvq',
+'vpsravd',
+'vpsrlvd',
+'vpsrlvq',
'add4s',
'brkem',
'clr1',
diff --git a/compiler/x86_64/x8664nop.inc b/compiler/x86_64/x8664nop.inc
index 24830769e7..2805df453d 100644
--- a/compiler/x86_64/x8664nop.inc
+++ b/compiler/x86_64/x8664nop.inc
@@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
-1679;
+1849;
diff --git a/compiler/x86_64/x8664op.inc b/compiler/x86_64/x8664op.inc
index 48dbdd334d..8af33b19da 100644
--- a/compiler/x86_64/x8664op.inc
+++ b/compiler/x86_64/x8664op.inc
@@ -951,6 +951,26 @@ A_RORX,
A_SARX,
A_SHLX,
A_SHRX,
+A_VBROADCASTI128,
+A_VEXTRACTI128,
+A_VINSERTI128,
+A_VPBLENDD,
+A_VPBROADCASTB,
+A_VPBROADCASTD,
+A_VPBROADCASTQ,
+A_VPBROADCASTW,
+A_VPERM2I128,
+A_VPERMD,
+A_VPERMPD,
+A_VPERMPS,
+A_VPERMQ,
+A_VPMASKMOVD,
+A_VPMASKMOVQ,
+A_VPSLLVD,
+A_VPSLLVQ,
+A_VPSRAVD,
+A_VPSRLVD,
+A_VPSRLVQ,
A_ADD4S,
A_BRKEM,
A_CLR1,
diff --git a/compiler/x86_64/x8664pro.inc b/compiler/x86_64/x8664pro.inc
index 47e1495c0d..5a454e454e 100644
--- a/compiler/x86_64/x8664pro.inc
+++ b/compiler/x86_64/x8664pro.inc
@@ -953,6 +953,26 @@
(Ch: (Ch_Rop1, Ch_Rop2, Ch_Wop3)),
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
(Ch: (Ch_All, Ch_None, Ch_None)),
diff --git a/compiler/x86_64/x8664tab.inc b/compiler/x86_64/x8664tab.inc
index cfd0430494..73f7080b0d 100644
--- a/compiler/x86_64/x8664tab.inc
+++ b/compiler/x86_64/x8664tab.inc
@@ -8807,6 +8807,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VBROADCASTSD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#25#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VBROADCASTSS;
ops : 2;
optypes : (ot_ymmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -8821,6 +8828,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VBROADCASTSS;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#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;
+ flags : if_avx2
+ ),
+ (
opcode : A_VCMPPD;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
@@ -8921,7 +8942,7 @@
(
opcode : A_VCVTDQ2PD;
ops : 2;
- optypes : (ot_ymmreg,ot_ymmreg,ot_none,ot_none);
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
code : #219#242#244#248#1#230#72;
flags : if_avx or if_sandybridge
),
@@ -9864,6 +9885,13 @@
flags : if_avx or 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_VMOVNTPD;
ops : 2;
optypes : (ot_memory or ot_bits256,ot_ymmreg,ot_none,ot_none);
@@ -10053,6 +10081,13 @@
flags : if_avx or 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,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10137,6 +10172,13 @@
flags : if_avx or 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);
@@ -10144,6 +10186,13 @@
flags : if_avx or 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
+ ),
+ (
opcode : A_VPABSW;
ops : 2;
optypes : (ot_xmmreg,ot_xmmrm,ot_none,ot_none);
@@ -10151,6 +10200,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPACKSSDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10158,6 +10214,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKSSDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#107#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKSSWB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10165,6 +10228,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKSSWB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#99#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKUSDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10172,6 +10242,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPACKUSDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#43#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPACKUSWB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10179,6 +10256,13 @@
flags : if_avx or 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_VPADDB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10186,6 +10270,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPADDD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10193,6 +10284,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPADDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10200,6 +10298,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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
+ ),
+ (
opcode : A_VPADDSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10207,6 +10312,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#236#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10214,6 +10326,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#237#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDUSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10221,6 +10340,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDUSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#220#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDUSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10228,6 +10354,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDUSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#221#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPADDW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10235,6 +10368,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPADDW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#253#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPALIGNR;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
@@ -10242,6 +10382,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPAND;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10249,6 +10396,13 @@
flags : if_avx or 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);
@@ -10256,6 +10410,13 @@
flags : if_avx or 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,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10263,6 +10424,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPAVGB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#224#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPAVGW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10270,6 +10438,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPAVGW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#227#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPBLENDVB;
ops : 4;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_xmmreg);
@@ -10277,6 +10452,13 @@
flags : if_avx or 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);
@@ -10284,6 +10466,13 @@
flags : if_avx or 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);
@@ -10298,6 +10487,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10305,6 +10501,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10312,6 +10515,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10319,6 +10529,13 @@
flags : if_avx or 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);
@@ -10340,6 +10557,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10347,6 +10571,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10354,6 +10585,13 @@
flags : if_avx or 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_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10361,6 +10599,13 @@
flags : if_avx or 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);
@@ -10515,6 +10760,13 @@
flags : if_avx or 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);
@@ -10522,6 +10774,13 @@
flags : if_avx or 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);
@@ -10529,6 +10788,13 @@
flags : if_avx or 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);
@@ -10543,6 +10809,13 @@
flags : if_avx or 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);
@@ -10550,6 +10823,13 @@
flags : if_avx or 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);
@@ -10557,6 +10837,13 @@
flags : if_avx or 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);
@@ -10606,6 +10893,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMADDUBSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#4#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMADDWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10613,6 +10907,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMADDWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#245#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10620,6 +10921,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#60#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10627,6 +10935,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#61#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10634,6 +10949,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#238#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXUB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10641,6 +10963,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMAXUB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#222#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMAXUD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10648,6 +10977,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMAXUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10655,6 +10991,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10662,6 +11005,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10669,6 +11019,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10676,6 +11033,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10683,6 +11047,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10690,6 +11061,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMINUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10697,6 +11075,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMOVMSKB;
ops : 2;
optypes : (ot_reg64,ot_xmmreg,ot_none,ot_none);
@@ -10711,6 +11096,20 @@
flags : if_avx or 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,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10725,6 +11124,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#33#72;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPMOVSXBD;
+ 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
+ ),
+ (
opcode : A_VPMOVSXBQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
@@ -10739,6 +11152,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVSXBQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#34#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXBW;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10753,6 +11180,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXBW;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#32#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXDQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10767,6 +11201,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXDQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#37#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXWD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10781,6 +11222,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXWD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#35#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVSXWQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10795,6 +11243,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVSXWQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVSXWQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#36#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10809,6 +11271,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBD;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXBD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#49#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits16,ot_none,ot_none);
@@ -10823,6 +11299,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXBQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#50#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXBW;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10837,6 +11327,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXBW;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#48#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXDQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10851,6 +11348,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXDQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#53#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXWD;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits64,ot_none,ot_none);
@@ -10865,6 +11369,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXWD;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmrm,ot_none,ot_none);
+ code : #241#242#244#249#1#51#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMOVZXWQ;
ops : 2;
optypes : (ot_xmmreg,ot_memory or ot_bits32,ot_none,ot_none);
@@ -10879,6 +11390,20 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPMOVZXWQ;
+ 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
+ ),
+ (
+ opcode : A_VPMOVZXWQ;
+ ops : 2;
+ optypes : (ot_ymmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#244#249#1#52#72;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPMULDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10886,6 +11411,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHRSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10893,6 +11425,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHUW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10900,6 +11439,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULHW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10907,6 +11453,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULLD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10914,6 +11467,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10921,6 +11481,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPMULUDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10928,6 +11495,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPOR;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10935,6 +11509,13 @@
flags : if_avx or 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);
@@ -10942,6 +11523,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10949,6 +11537,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10956,6 +11551,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFHW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10963,6 +11565,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSHUFLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8,ot_none);
@@ -10970,6 +11579,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSIGNB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -10977,6 +11593,13 @@
flags : if_avx or 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);
@@ -10984,6 +11607,13 @@
flags : if_avx or 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);
@@ -10991,6 +11621,13 @@
flags : if_avx or 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,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11005,6 +11642,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSLLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11012,6 +11663,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSLLQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11026,6 +11684,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSLLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11040,6 +11712,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRAD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11054,6 +11740,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRAW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11068,6 +11768,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11082,6 +11796,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11089,6 +11817,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSRLQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11103,6 +11838,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSRLW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate or ot_bits8,ot_none);
@@ -11117,6 +11866,20 @@
flags : if_avx or if_sandybridge
),
(
+ 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_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_VPSUBB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11124,6 +11887,13 @@
flags : if_avx or if_sandybridge
),
(
+ 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_VPSUBD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11131,6 +11901,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#250#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11138,6 +11915,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#251#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11145,6 +11929,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#232#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11152,6 +11943,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#233#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBUSB;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11159,6 +11957,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBUSB;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#216#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBUSW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11166,6 +11971,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBUSW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#217#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPSUBW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11173,6 +11985,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPSUBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#249#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPTEST;
ops : 2;
optypes : (ot_ymmreg,ot_ymmrm,ot_none,ot_none);
@@ -11194,6 +12013,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#104#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11201,6 +12027,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#106#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHQDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11208,6 +12041,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHQDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#109#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKHWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11215,6 +12055,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKHWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#105#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLBW;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11222,6 +12069,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLBW;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#96#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11229,6 +12083,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#98#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLQDQ;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11236,6 +12097,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLQDQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#108#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPUNPCKLWD;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11243,6 +12111,13 @@
flags : if_avx or if_sandybridge
),
(
+ opcode : A_VPUNPCKLWD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#248#1#97#61#80;
+ flags : if_avx2
+ ),
+ (
opcode : A_VPXOR;
ops : 3;
optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
@@ -11250,6 +12125,13 @@
flags : if_avx or 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);
@@ -11752,5 +12634,313 @@
optypes : (ot_reg64,ot_rm_gpr or ot_bits64,ot_reg64,ot_none);
code : #220#242#243#249#1#247#62#72;
flags : if_bmi2 or if_x86_64
+ ),
+ (
+ 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,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#120#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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_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_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_VPBROADCASTD;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#88#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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_VPBROADCASTQ;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#89#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_VPBROADCASTW;
+ ops : 2;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_none,ot_none);
+ code : #241#242#249#1#121#72;
+ flags : if_avx2
+ ),
+ (
+ 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_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_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,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#54#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPERMPD;
+ 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
+ ),
+ (
+ opcode : A_VPERMPS;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#22#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPERMQ;
+ 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
+ ),
+ (
+ 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_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#243#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSLLVQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#243#244#249#1#71#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRAVD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#70#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRAVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#70#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVD;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#244#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVD;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVQ;
+ ops : 3;
+ optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+ code : #241#242#243#244#249#1#69#61#80;
+ flags : if_avx2
+ ),
+ (
+ opcode : A_VPSRLVQ;
+ ops : 3;
+ optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
+ code : #241#242#243#249#1#69#61#80;
+ flags : if_avx2
)
);