# INFO This file automatically generated by andre on Thu May 10 11:02:19 2018
# INFO Direct edits to this file may be lost in future updates
# INFO Command line arguments: ['--sinc', '--cpuid-match', '^AVX2\\b', '--skip-sinc', '../../../Processors/x86/data/languages/avx2_manual.sinc']

# MOVNTDQA 4-92 PAGE 1212 LINE 63086
define pcodeop vmovntdqa_avx2 ;
:VMOVNTDQA YmmReg1, m256 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x2A; YmmReg1 ... & m256
{
	YmmReg1 = vmovntdqa_avx2( m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# MPSADBW 4-136 PAGE 1256 LINE 65140
define pcodeop vmpsadbw_avx2 ;
:VMPSADBW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256, imm8 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x42; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vmpsadbw_avx2( vexVVVV_YmmReg, YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PABSB/PABSW/PABSD/PABSQ 4-180 PAGE 1300 LINE 67311
define pcodeop vpabsb_avx2 ;
:VPABSB YmmReg1, YmmReg2_m256 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x1C; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpabsb_avx2( YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PABSB/PABSW/PABSD/PABSQ 4-180 PAGE 1300 LINE 67314
define pcodeop vpabsw_avx2 ;
:VPABSW YmmReg1, YmmReg2_m256 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x1D; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpabsw_avx2( YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PABSB/PABSW/PABSD/PABSQ 4-180 PAGE 1300 LINE 67317
define pcodeop vpabsd_avx2 ;
:VPABSD YmmReg1, YmmReg2_m256 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x1E; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpabsd_avx2( YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PACKSSWB/PACKSSDW 4-186 PAGE 1306 LINE 67637
define pcodeop vpacksswb_avx2 ;
:VPACKSSWB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x63; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpacksswb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PACKSSWB/PACKSSDW 4-186 PAGE 1306 LINE 67641
define pcodeop vpackssdw_avx2 ;
:VPACKSSDW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x6B; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpackssdw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PACKUSDW 4-194 PAGE 1314 LINE 68090
define pcodeop vpackusdw_avx2 ;
:VPACKUSDW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & vexVVVV_YmmReg; byte=0x2B; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpackusdw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PACKUSWB 4-199 PAGE 1319 LINE 68370
define pcodeop vpackuswb_avx2 ;
:VPACKUSWB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x67; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpackuswb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDB/PADDW/PADDD/PADDQ 4-204 PAGE 1324 LINE 68666
define pcodeop vpaddb_avx2 ;
:VPADDB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xFC; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDB/PADDW/PADDD/PADDQ 4-204 PAGE 1324 LINE 68668
define pcodeop vpaddw_avx2 ;
:VPADDW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xFD; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDB/PADDW/PADDD/PADDQ 4-204 PAGE 1324 LINE 68670
define pcodeop vpaddd_avx2 ;
:VPADDD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xFE; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDB/PADDW/PADDD/PADDQ 4-204 PAGE 1324 LINE 68672
define pcodeop vpaddq_avx2 ;
:VPADDQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xD4; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDSB/PADDSW 4-211 PAGE 1331 LINE 69045
define pcodeop vpaddsb_avx2 ;
:VPADDSB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xEC; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddsb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDSB/PADDSW 4-211 PAGE 1331 LINE 69048
define pcodeop vpaddsw_avx2 ;
:VPADDSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xED; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddsw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDUSB/PADDUSW 4-215 PAGE 1335 LINE 69263
define pcodeop vpaddusb_avx2 ;
:VPADDUSB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xDC; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddusb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PADDUSB/PADDUSW 4-215 PAGE 1335 LINE 69266
define pcodeop vpaddusw_avx2 ;
:VPADDUSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xDD; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpaddusw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PALIGNR 4-219 PAGE 1339 LINE 69489
define pcodeop vpalignr_avx2 ;
:VPALIGNR YmmReg1, vexVVVV_YmmReg, YmmReg2_m256, imm8 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x0F; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpalignr_avx2( vexVVVV_YmmReg, YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PAND 4-223 PAGE 1343 LINE 69680
define pcodeop vpand_avx2 ;
:VPAND YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xDB; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpand_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PANDN 4-226 PAGE 1346 LINE 69856
define pcodeop vpandn_avx2 ;
:VPANDN YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xDF; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpandn_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PAVGB/PAVGW 4-230 PAGE 1350 LINE 70091
define pcodeop vpavgb_avx2 ;
:VPAVGB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE0; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpavgb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PAVGB/PAVGW 4-230 PAGE 1350 LINE 70094
define pcodeop vpavgw_avx2 ;
:VPAVGW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE3; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpavgw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PBLENDVB 4-234 PAGE 1354 LINE 70300
define pcodeop vpblendvb_avx2 ;
:VPBLENDVB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256, Ymm_imm8_7_4 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x4C; YmmReg1 ... & YmmReg2_m256; Ymm_imm8_7_4
{
	YmmReg1 = vpblendvb_avx2( vexVVVV_YmmReg, YmmReg2_m256, Ymm_imm8_7_4 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PBLENDW 4-238 PAGE 1358 LINE 70525
define pcodeop vpblendw_avx2 ;
:VPBLENDW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256, imm8 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x0E; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpblendw_avx2( vexVVVV_YmmReg, YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PCMPEQB/PCMPEQW/PCMPEQD 4-244 PAGE 1364 LINE 70830
define pcodeop vpcmpeqb_avx2 ;
:VPCMPEQB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x74; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpcmpeqb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PCMPEQB/PCMPEQW/PCMPEQD 4-244 PAGE 1364 LINE 70833
define pcodeop vpcmpeqw_avx2 ;
:VPCMPEQW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x75; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpcmpeqw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PCMPEQB/PCMPEQW/PCMPEQD 4-244 PAGE 1364 LINE 70837
define pcodeop vpcmpeqd_avx2 ;
:VPCMPEQD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x76; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpcmpeqd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PCMPGTB/PCMPGTW/PCMPGTD 4-257 PAGE 1377 LINE 71508
define pcodeop vpcmpgtb_avx2 ;
:VPCMPGTB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x64; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpcmpgtb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PCMPGTB/PCMPGTW/PCMPGTD 4-257 PAGE 1377 LINE 71511
define pcodeop vpcmpgtw_avx2 ;
:VPCMPGTW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x65; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpcmpgtw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PCMPGTB/PCMPGTW/PCMPGTD 4-257 PAGE 1377 LINE 71514
define pcodeop vpcmpgtd_avx2 ;
:VPCMPGTD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x66; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpcmpgtd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PCMPGTQ 4-263 PAGE 1383 LINE 71835
define pcodeop vpcmpgtq_avx2 ;
:VPCMPGTQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x37; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpcmpgtq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PHADDW/PHADDD 4-280 PAGE 1400 LINE 72633
define pcodeop vphaddw_avx2 ;
:VPHADDW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x01; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vphaddw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PHADDW/PHADDD 4-280 PAGE 1400 LINE 72636
define pcodeop vphaddd_avx2 ;
:VPHADDD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x02; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vphaddd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PHADDSW 4-284 PAGE 1404 LINE 72824
define pcodeop vphaddsw_avx2 ;
:VPHADDSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x03; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vphaddsw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PHSUBW/PHSUBD 4-288 PAGE 1408 LINE 73038
define pcodeop vphsubw_avx2 ;
:VPHSUBW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x05; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vphsubw_avx2( YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PHSUBW/PHSUBD 4-288 PAGE 1408 LINE 73041
define pcodeop vphsubd_avx2 ;
:VPHSUBD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x06; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vphsubd_avx2( YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PHSUBSW 4-291 PAGE 1411 LINE 73200
define pcodeop vphsubsw_avx2 ;
:VPHSUBSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x07; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vphsubsw_avx2( YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMADDUBSW 4-298 PAGE 1418 LINE 73555
define pcodeop vpmaddubsw_avx2 ;
:VPMADDUBSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x04; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaddubsw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMADDWD 4-301 PAGE 1421 LINE 73704
define pcodeop vpmaddwd_avx2 ;
:VPMADDWD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF5; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaddwd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMAXSB/PMAXSW/PMAXSD/PMAXSQ 4-304 PAGE 1424 LINE 73891
define pcodeop vpmaxsb_avx2 ;
:VPMAXSB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x3C; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaxsb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMAXSB/PMAXSW/PMAXSD/PMAXSQ 4-304 PAGE 1424 LINE 73894
define pcodeop vpmaxsw_avx2 ;
:VPMAXSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xEE; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaxsw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMAXSB/PMAXSW/PMAXSD/PMAXSQ 4-304 PAGE 1424 LINE 73897
define pcodeop vpmaxsd_avx2 ;
:VPMAXSD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x3D; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaxsd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMAXUB/PMAXUW 4-311 PAGE 1431 LINE 74289
define pcodeop vpmaxub_avx2 ;
:VPMAXUB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & vexVVVV_YmmReg; byte=0xDE; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaxub_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMAXUB/PMAXUW 4-311 PAGE 1431 LINE 74292
define pcodeop vpmaxuw_avx2 ;
:VPMAXUW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & vexVVVV_YmmReg; byte=0x3E; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaxuw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMAXUD/PMAXUQ 4-316 PAGE 1436 LINE 74537
define pcodeop vpmaxud_avx2 ;
:VPMAXUD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x3F; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmaxud_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMINSB/PMINSW 4-320 PAGE 1440 LINE 74742
define pcodeop vpminsb_avx2 ;
:VPMINSB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & vexVVVV_YmmReg; byte=0x38; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpminsb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMINSB/PMINSW 4-320 PAGE 1440 LINE 74745
define pcodeop vpminsw_avx2 ;
:VPMINSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & vexVVVV_YmmReg; byte=0xEA; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpminsw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMINSD/PMINSQ 4-325 PAGE 1445 LINE 74992
define pcodeop vpminsd_avx2 ;
:VPMINSD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x39; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpminsd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMINUB/PMINUW 4-329 PAGE 1449 LINE 75201
define pcodeop vpminub_avx2 ;
:VPMINUB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & vexVVVV_YmmReg; byte=0xDA; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpminub_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMINUB/PMINUW 4-329 PAGE 1449 LINE 75204
define pcodeop vpminuw_avx2 ;
:VPMINUW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & vexVVVV_YmmReg; byte=0x3A; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpminuw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMINUD/PMINUQ 4-334 PAGE 1454 LINE 75448
define pcodeop vpminud_avx2 ;
:VPMINUD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x3B; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpminud_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVSX 4-340 PAGE 1460 LINE 75782
define pcodeop vpmovsxbw_avx2 ;
:VPMOVSXBW YmmReg1, XmmReg2_m128 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x20; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpmovsxbw_avx2( XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVSX 4-340 PAGE 1460 LINE 75784
define pcodeop vpmovsxbd_avx2 ;
:VPMOVSXBD YmmReg1, XmmReg2_m64 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x21; YmmReg1 ... & XmmReg2_m64
{
	YmmReg1 = vpmovsxbd_avx2( XmmReg2_m64 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVSX 4-340 PAGE 1460 LINE 75786
define pcodeop vpmovsxbq_avx2 ;
:VPMOVSXBQ YmmReg1, XmmReg2_m32 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x22; YmmReg1 ... & XmmReg2_m32
{
	YmmReg1 = vpmovsxbq_avx2( XmmReg2_m32 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVSX 4-340 PAGE 1460 LINE 75788
define pcodeop vpmovsxwd_avx2 ;
:VPMOVSXWD YmmReg1, XmmReg2_m128 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x23; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpmovsxwd_avx2( XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVSX 4-340 PAGE 1460 LINE 75791
define pcodeop vpmovsxwq_avx2 ;
:VPMOVSXWQ YmmReg1, XmmReg2_m64 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x24; YmmReg1 ... & XmmReg2_m64
{
	YmmReg1 = vpmovsxwq_avx2( XmmReg2_m64 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVSX 4-340 PAGE 1460 LINE 75793
define pcodeop vpmovsxdq_avx2 ;
:VPMOVSXDQ YmmReg1, XmmReg2_m128 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x25; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpmovsxdq_avx2( XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVZX 4-350 PAGE 1470 LINE 76304
define pcodeop vpmovzxbw_avx2 ;
:VPMOVZXBW YmmReg1, XmmReg2_m128 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x30; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpmovzxbw_avx2( XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVZX 4-350 PAGE 1470 LINE 76306
define pcodeop vpmovzxbd_avx2 ;
:VPMOVZXBD YmmReg1, XmmReg2_m64 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x31; YmmReg1 ... & XmmReg2_m64
{
	YmmReg1 = vpmovzxbd_avx2( XmmReg2_m64 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVZX 4-350 PAGE 1470 LINE 76309
define pcodeop vpmovzxbq_avx2 ;
:VPMOVZXBQ YmmReg1, XmmReg2_m32 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x32; YmmReg1 ... & XmmReg2_m32
{
	YmmReg1 = vpmovzxbq_avx2( XmmReg2_m32 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVZX 4-350 PAGE 1470 LINE 76312
define pcodeop vpmovzxwd_avx2 ;
:VPMOVZXWD YmmReg1, XmmReg2_m128 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x33; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpmovzxwd_avx2( XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVZX 4-350 PAGE 1470 LINE 76314
define pcodeop vpmovzxwq_avx2 ;
:VPMOVZXWQ YmmReg1, XmmReg2_m64 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x34; YmmReg1 ... & XmmReg2_m64
{
	YmmReg1 = vpmovzxwq_avx2( XmmReg2_m64 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMOVZX 4-350 PAGE 1470 LINE 76317
define pcodeop vpmovzxdq_avx2 ;
:VPMOVZXDQ YmmReg1, XmmReg2_m128 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG); byte=0x35; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpmovzxdq_avx2( XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMULDQ 4-359 PAGE 1479 LINE 76791
define pcodeop vpmuldq_avx2 ;
:VPMULDQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x28; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmuldq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMULHRSW 4-362 PAGE 1482 LINE 76931
define pcodeop vpmulhrsw_avx2 ;
:VPMULHRSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x0B; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmulhrsw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMULHUW 4-366 PAGE 1486 LINE 77144
define pcodeop vpmulhuw_avx2 ;
:VPMULHUW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE4; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmulhuw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMULHW 4-370 PAGE 1490 LINE 77373
define pcodeop vpmulhw_avx2 ;
:VPMULHW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE5; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmulhw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMULLD/PMULLQ 4-374 PAGE 1494 LINE 77579
define pcodeop vpmulld_avx2 ;
:VPMULLD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x40; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmulld_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMULLW 4-378 PAGE 1498 LINE 77778
define pcodeop vpmullw_avx2 ;
:VPMULLW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xD5; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmullw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PMULUDQ 4-382 PAGE 1502 LINE 77973
define pcodeop vpmuludq_avx2 ;
:VPMULUDQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF4; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpmuludq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# POR 4-399 PAGE 1519 LINE 78852
define pcodeop vpor_avx2 ;
:VPOR YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xEB; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpor_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSADBW 4-408 PAGE 1528 LINE 79245
define pcodeop vpsadbw_avx2 ;
:VPSADBW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF6; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsadbw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSHUFB 4-412 PAGE 1532 LINE 79463
define pcodeop vpshufb_avx2 ;
:VPSHUFB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x00; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpshufb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSHUFD 4-416 PAGE 1536 LINE 79653
define pcodeop vpshufd_avx2 ;
:VPSHUFD YmmReg1, YmmReg2_m256, imm8 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG); byte=0x70; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpshufd_avx2( YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSHUFHW 4-420 PAGE 1540 LINE 79860
define pcodeop vpshufhw_avx2 ;
:VPSHUFHW YmmReg1, YmmReg2_m256, imm8 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_F3) & $(VEX_0F) & $(VEX_WIG); byte=0x70; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpshufhw_avx2( YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSHUFLW 4-423 PAGE 1543 LINE 80035
define pcodeop vpshuflw_avx2 ;
:VPSHUFLW YmmReg1, YmmReg2_m256, imm8 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_F2) & $(VEX_0F) & $(VEX_WIG); byte=0x70; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpshuflw_avx2( YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSIGNB/PSIGNW/PSIGND 4-427 PAGE 1547 LINE 80278
define pcodeop vpsignb_avx2 ;
:VPSIGNB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x08; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsignb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSIGNB/PSIGNW/PSIGND 4-427 PAGE 1547 LINE 80281
define pcodeop vpsignw_avx2 ;
:VPSIGNW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x09; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsignw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSIGNB/PSIGNW/PSIGND 4-427 PAGE 1547 LINE 80284
define pcodeop vpsignd_avx2 ;
:VPSIGND YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x0A; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsignd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSLLDQ 4-431 PAGE 1551 LINE 80488
define pcodeop vpslldq_avx2 ;
:VPSLLDQ vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x73; reg_opcode=7 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpslldq_avx2( YmmReg2, imm8:1 );
}

# PSLLW/PSLLD/PSLLQ 4-433 PAGE 1553 LINE 80638
define pcodeop vpsllw_avx2 ;
:VPSLLW YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF1; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpsllw_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSLLW/PSLLD/PSLLQ 4-433 PAGE 1553 LINE 80641
:VPSLLW vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x71; reg_opcode=6 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsllw_avx2( YmmReg2, imm8:1 );
}

# PSLLW/PSLLD/PSLLQ 4-434 PAGE 1554 LINE 80656
define pcodeop vpslld_avx2 ;
:VPSLLD YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF2; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpslld_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSLLW/PSLLD/PSLLQ 4-434 PAGE 1554 LINE 80659
:VPSLLD vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x72; reg_opcode=6 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpslld_avx2( YmmReg2, imm8:1 );
}

# PSLLW/PSLLD/PSLLQ 4-434 PAGE 1554 LINE 80662
define pcodeop vpsllq_avx2 ;
:VPSLLQ YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF3; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpsllq_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSLLW/PSLLD/PSLLQ 4-434 PAGE 1554 LINE 80664
:VPSLLQ vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x73; reg_opcode=6 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsllq_avx2( YmmReg2, imm8:1 );
}

# PSRAW/PSRAD/PSRAQ 4-445 PAGE 1565 LINE 81317
define pcodeop vpsraw_avx2 ;
:VPSRAW YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE1; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpsraw_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSRAW/PSRAD/PSRAQ 4-445 PAGE 1565 LINE 81320
:VPSRAW vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x71; reg_opcode=4 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsraw_avx2( YmmReg2, imm8:1 );
}

# PSRAW/PSRAD/PSRAQ 4-445 PAGE 1565 LINE 81323
define pcodeop vpsrad_avx2 ;
:VPSRAD YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE2; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpsrad_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSRAW/PSRAD/PSRAQ 4-445 PAGE 1565 LINE 81326
:VPSRAD vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x72; reg_opcode=4 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsrad_avx2( YmmReg2, imm8:1 );
}

# PSRLDQ 4-455 PAGE 1575 LINE 81876
define pcodeop vpsrldq_avx2 ;
:VPSRLDQ vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x73; reg_opcode=3 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsrldq_avx2( YmmReg2, imm8:1 );
}

# PSRLW/PSRLD/PSRLQ 4-457 PAGE 1577 LINE 82030
define pcodeop vpsrlw_avx2 ;
:VPSRLW YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xD1; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpsrlw_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSRLW/PSRLD/PSRLQ 4-457 PAGE 1577 LINE 82033
:VPSRLW vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x71; reg_opcode=2 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsrlw_avx2( YmmReg2, imm8:1 );
}

# PSRLW/PSRLD/PSRLQ 4-458 PAGE 1578 LINE 82048
define pcodeop vpsrld_avx2 ;
:VPSRLD YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xD2; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpsrld_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSRLW/PSRLD/PSRLQ 4-458 PAGE 1578 LINE 82051
:VPSRLD vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x72; reg_opcode=2 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsrld_avx2( YmmReg2, imm8:1 );
}

# PSRLW/PSRLD/PSRLQ 4-458 PAGE 1578 LINE 82054
define pcodeop vpsrlq_avx2 ;
:VPSRLQ YmmReg1, vexVVVV_YmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xD3; YmmReg1 ... & XmmReg2_m128
{
	YmmReg1 = vpsrlq_avx2( vexVVVV_YmmReg, XmmReg2_m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSRLW/PSRLD/PSRLQ 4-458 PAGE 1578 LINE 82056
:VPSRLQ vexVVVV_YmmReg, YmmReg2, imm8 is $(VEX_NDD) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x73; reg_opcode=2 & (mod=0x3 & YmmReg2); imm8
{
	vexVVVV_YmmReg = vpsrlq_avx2( YmmReg2, imm8:1 );
}

# PSUBB/PSUBW/PSUBD 4-469 PAGE 1589 LINE 82696
define pcodeop vpsubb_avx2 ;
:VPSUBB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF8; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSUBB/PSUBW/PSUBD 4-469 PAGE 1589 LINE 82698
define pcodeop vpsubw_avx2 ;
:VPSUBW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xF9; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSUBB/PSUBW/PSUBD 4-469 PAGE 1589 LINE 82700
define pcodeop vpsubd_avx2 ;
:VPSUBD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xFA; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSUBQ 4-476 PAGE 1596 LINE 83104
define pcodeop vpsubq_avx2 ;
:VPSUBQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xFB; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSUBSB/PSUBSW 4-479 PAGE 1599 LINE 83264
define pcodeop vpsubsb_avx2 ;
:VPSUBSB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE8; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubsb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSUBSB/PSUBSW 4-479 PAGE 1599 LINE 83267
define pcodeop vpsubsw_avx2 ;
:VPSUBSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xE9; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubsw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSUBUSB/PSUBUSW 4-483 PAGE 1603 LINE 83504
define pcodeop vpsubusb_avx2 ;
:VPSUBUSB YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xD8; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubusb_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PSUBUSB/PSUBUSW 4-483 PAGE 1603 LINE 83507
define pcodeop vpsubusw_avx2 ;
:VPSUBUSW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xD9; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsubusw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ 4-491 PAGE 1611 LINE 83940
define pcodeop vpunpckhbw_avx2 ;
:VPUNPCKHBW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x68; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpckhbw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ 4-491 PAGE 1611 LINE 83942
define pcodeop vpunpckhwd_avx2 ;
:VPUNPCKHWD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x69; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpckhwd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ 4-491 PAGE 1611 LINE 83944
define pcodeop vpunpckhdq_avx2 ;
:VPUNPCKHDQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x6A; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpckhdq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ 4-491 PAGE 1611 LINE 83946
define pcodeop vpunpckhqdq_avx2 ;
:VPUNPCKHQDQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x6D; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpckhqdq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ 4-501 PAGE 1621 LINE 84541
define pcodeop vpunpcklbw_avx2 ;
:VPUNPCKLBW YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x60; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpcklbw_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ 4-501 PAGE 1621 LINE 84544
define pcodeop vpunpcklwd_avx2 ;
:VPUNPCKLWD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x61; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpcklwd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ 4-501 PAGE 1621 LINE 84547
define pcodeop vpunpckldq_avx2 ;
:VPUNPCKLDQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x62; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpckldq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ 4-501 PAGE 1621 LINE 84550
define pcodeop vpunpcklqdq_avx2 ;
:VPUNPCKLQDQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0x6C; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpunpcklqdq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# PXOR 4-518 PAGE 1638 LINE 85497
define pcodeop vpxor_avx2 ;
:VPXOR YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F) & $(VEX_WIG) & vexVVVV_YmmReg; byte=0xEF; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpxor_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VEXTRACTI128/VEXTRACTI32x4/VEXTRACTI64x2/VEXTRACTI32x8/VEXTRACTI64x4 5-106 PAGE 1930 LINE 99432
define pcodeop vextracti128_avx2 ;
:VEXTRACTI128 XmmReg2_m128, YmmReg1, imm8 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_W0); byte=0x39; YmmReg1 ... & XmmReg2_m128; imm8
{
	XmmReg2_m128 = vextracti128_avx2( YmmReg1, imm8:1 );
	# TODO ZmmReg2 = zext(XmmReg2)
}

# VGATHERDPD/VGATHERQPD 5-251 PAGE 2075 LINE 106903
# INFO mnemonic VGATHERDPD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VGATHERDPD/VGATHERQPD 5-251 PAGE 2075 LINE 106908
# INFO mnemonic VGATHERQPD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VGATHERDPD/VGATHERQPD 5-251 PAGE 2075 LINE 106913
# INFO mnemonic VGATHERDPD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VGATHERDPD/VGATHERQPD 5-251 PAGE 2075 LINE 106918
# INFO mnemonic VGATHERQPD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VGATHERDPS/VGATHERQPS 5-256 PAGE 2080 LINE 107130
# INFO mnemonic VGATHERDPS was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VGATHERDPS/VGATHERQPS 5-256 PAGE 2080 LINE 107135
# INFO mnemonic VGATHERQPS was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VGATHERDPS/VGATHERQPS 5-256 PAGE 2080 LINE 107140
# INFO mnemonic VGATHERDPS was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VGATHERDPS/VGATHERQPS 5-256 PAGE 2080 LINE 107145
# INFO mnemonic VGATHERQPS was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDD/VPGATHERQD 5-273 PAGE 2097 LINE 107884
# INFO mnemonic VPGATHERDD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDD/VPGATHERQD 5-273 PAGE 2097 LINE 107888
# INFO mnemonic VPGATHERQD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDD/VPGATHERQD 5-273 PAGE 2097 LINE 107892
# INFO mnemonic VPGATHERDD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDD/VPGATHERQD 5-273 PAGE 2097 LINE 107896
# INFO mnemonic VPGATHERQD was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDQ/VPGATHERQQ 5-280 PAGE 2104 LINE 108234
# INFO mnemonic VPGATHERDQ was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDQ/VPGATHERQQ 5-280 PAGE 2104 LINE 108238
# INFO mnemonic VPGATHERQQ was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDQ/VPGATHERQQ 5-280 PAGE 2104 LINE 108242
# INFO mnemonic VPGATHERDQ was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPGATHERDQ/VPGATHERQQ 5-280 PAGE 2104 LINE 108246
# INFO mnemonic VPGATHERQQ was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VINSERTI128/VINSERTI32x4/VINSERTI64x2/VINSERTI32x8/VINSERTI64x4 5-314 PAGE 2138 LINE 109927
# INFO mnemonic VINSERTI128 was found in ../../../Processors/x86/data/languages/avx2_manual.sinc

# VPBLENDD 5-321 PAGE 2145 LINE 110309
define pcodeop vpblendd_avx2 ;
:VPBLENDD XmmReg1, vexVVVV_XmmReg, XmmReg2_m128, imm8 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_W0) & vexVVVV_XmmReg; byte=0x02; (XmmReg1 & YmmReg1) ... & XmmReg2_m128; imm8
{
	local tmp:16 = vpblendd_avx2( vexVVVV_XmmReg, XmmReg2_m128, imm8:1 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPBLENDD 5-321 PAGE 2145 LINE 110312
:VPBLENDD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256, imm8 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x02; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpblendd_avx2( vexVVVV_YmmReg, YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110776
define pcodeop vpbroadcastb_avx2 ;
:VPBROADCASTB XmmReg1, XmmReg2_m8 is $(VEX_NONE) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x78; (XmmReg1 & YmmReg1) ... & XmmReg2_m8
{
	local tmp:16 = vpbroadcastb_avx2( XmmReg2_m8 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110778
:VPBROADCASTB YmmReg1, XmmReg2_m8 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x78; YmmReg1 ... & XmmReg2_m8
{
	YmmReg1 = vpbroadcastb_avx2( XmmReg2_m8 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110787
define pcodeop vpbroadcastw_avx2 ;
:VPBROADCASTW XmmReg1, XmmReg2_m16 is $(VEX_NONE) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x79; (XmmReg1 & YmmReg1) ... & XmmReg2_m16
{
	local tmp:16 = vpbroadcastw_avx2( XmmReg2_m16 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110789
:VPBROADCASTW YmmReg1, XmmReg2_m16 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x79; YmmReg1 ... & XmmReg2_m16
{
	YmmReg1 = vpbroadcastw_avx2( XmmReg2_m16 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110800
define pcodeop vpbroadcastd_avx2 ;
:VPBROADCASTD XmmReg1, XmmReg2_m32 is $(VEX_NONE) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x58; (XmmReg1 & YmmReg1) ... & XmmReg2_m32
{
	local tmp:16 = vpbroadcastd_avx2( XmmReg2_m32 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110802
:VPBROADCASTD YmmReg1, XmmReg2_m32 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x58; YmmReg1 ... & XmmReg2_m32
{
	YmmReg1 = vpbroadcastd_avx2( XmmReg2_m32 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110813
define pcodeop vpbroadcastq_avx2 ;
:VPBROADCASTQ XmmReg1, XmmReg2_m64 is $(VEX_NONE) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x59; (XmmReg1 & YmmReg1) ... & XmmReg2_m64
{
	local tmp:16 = vpbroadcastq_avx2( XmmReg2_m64 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPBROADCAST 5-331 PAGE 2155 LINE 110815
:VPBROADCASTQ YmmReg1, XmmReg2_m64 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x59; YmmReg1 ... & XmmReg2_m64
{
	YmmReg1 = vpbroadcastq_avx2( XmmReg2_m64 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPBROADCAST 5-332 PAGE 2156 LINE 110843
define pcodeop vbroadcasti128_avx2 ;
:VBROADCASTI128 YmmReg1, m128 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0); byte=0x5A; YmmReg1 ... & m128
{
	YmmReg1 = vbroadcasti128_avx2( m128 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPERM2I128 5-360 PAGE 2184 LINE 112312
define pcodeop vperm2i128_avx2 ;
:VPERM2I128 YmmReg1, vexVVVV_YmmReg, YmmReg2_m256, imm8 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x46; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vperm2i128_avx2( vexVVVV_YmmReg, YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPERMD/VPERMW 5-362 PAGE 2186 LINE 112405
define pcodeop vpermd_avx2 ;
:VPERMD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x36; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpermd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPERMPD 5-381 PAGE 2205 LINE 113452
define pcodeop vpermpd_avx2 ;
:VPERMPD YmmReg1, YmmReg2_m256, imm8 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_W1); byte=0x01; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpermpd_avx2( YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPERMPS 5-384 PAGE 2208 LINE 113633
define pcodeop vpermps_avx2 ;
:VPERMPS YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x16; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpermps_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPERMQ 5-387 PAGE 2211 LINE 113768
define pcodeop vpermq_avx2 ;
:VPERMQ YmmReg1, YmmReg2_m256, imm8 is $(VEX_NONE) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F3A) & $(VEX_W1); byte=0x00; YmmReg1 ... & YmmReg2_m256; imm8
{
	YmmReg1 = vpermq_avx2( YmmReg2_m256, imm8:1 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114262
define pcodeop vpmaskmovd_avx2 ;
:VPMASKMOVD XmmReg1, vexVVVV_XmmReg, m128 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_XmmReg; byte=0x8C; (XmmReg1 & YmmReg1) ... & m128
{
	local tmp:16 = vpmaskmovd_avx2( vexVVVV_XmmReg, m128 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114264
:VPMASKMOVD YmmReg1, vexVVVV_YmmReg, m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x8C; YmmReg1 ... & m256
{
	YmmReg1 = vpmaskmovd_avx2( vexVVVV_YmmReg, m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114266
define pcodeop vpmaskmovq_avx2 ;
:VPMASKMOVQ XmmReg1, vexVVVV_XmmReg, m128 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_XmmReg; byte=0x8C; (XmmReg1 & YmmReg1) ... & m128
{
	local tmp:16 = vpmaskmovq_avx2( vexVVVV_XmmReg, m128 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114268
:VPMASKMOVQ YmmReg1, vexVVVV_YmmReg, m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_YmmReg; byte=0x8C; YmmReg1 ... & m256
{
	YmmReg1 = vpmaskmovq_avx2( vexVVVV_YmmReg, m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114270
:VPMASKMOVD m128, vexVVVV_XmmReg, XmmReg1 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_XmmReg; byte=0x8E; XmmReg1 ... & m128
{
	m128 = vpmaskmovd_avx2( vexVVVV_XmmReg, XmmReg1 );
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114272
:VPMASKMOVD m256, vexVVVV_YmmReg, YmmReg1 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x8E; YmmReg1 ... & m256
{
	m256 = vpmaskmovd_avx2( vexVVVV_YmmReg, YmmReg1 );
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114274
:VPMASKMOVQ m128, vexVVVV_XmmReg, XmmReg1 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_XmmReg; byte=0x8E; XmmReg1 ... & m128
{
	m128 = vpmaskmovq_avx2( vexVVVV_XmmReg, XmmReg1 );
}

# VPMASKMOV 5-397 PAGE 2221 LINE 114276
:VPMASKMOVQ m256, vexVVVV_YmmReg, YmmReg1 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_YmmReg; byte=0x8E; YmmReg1 ... & m256
{
	m256 = vpmaskmovq_avx2( vexVVVV_YmmReg, YmmReg1 );
}

# VPSLLVW/VPSLLVD/VPSLLVQ 5-445 PAGE 2269 LINE 116620
define pcodeop vpsllvd_avx2 ;
:VPSLLVD XmmReg1, vexVVVV_XmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_XmmReg; byte=0x47; (XmmReg1 & YmmReg1) ... & XmmReg2_m128
{
	local tmp:16 = vpsllvd_avx2( vexVVVV_XmmReg, XmmReg2_m128 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPSLLVW/VPSLLVD/VPSLLVQ 5-445 PAGE 2269 LINE 116623
define pcodeop vpsllvq_avx2 ;
:VPSLLVQ XmmReg1, vexVVVV_XmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_XmmReg; byte=0x47; (XmmReg1 & YmmReg1) ... & XmmReg2_m128
{
	local tmp:16 = vpsllvq_avx2( vexVVVV_XmmReg, XmmReg2_m128 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPSLLVW/VPSLLVD/VPSLLVQ 5-445 PAGE 2269 LINE 116626
:VPSLLVD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x47; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsllvd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPSLLVW/VPSLLVD/VPSLLVQ 5-445 PAGE 2269 LINE 116629
:VPSLLVQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_YmmReg; byte=0x47; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsllvq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPSRAVW/VPSRAVD/VPSRAVQ 5-450 PAGE 2274 LINE 116874
define pcodeop vpsravd_avx2 ;
:VPSRAVD XmmReg1, vexVVVV_XmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_XmmReg; byte=0x46; (XmmReg1 & YmmReg1) ... & XmmReg2_m128
{
	local tmp:16 = vpsravd_avx2( vexVVVV_XmmReg, XmmReg2_m128 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPSRAVW/VPSRAVD/VPSRAVQ 5-450 PAGE 2274 LINE 116877
:VPSRAVD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x46; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsravd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPSRLVW/VPSRLVD/VPSRLVQ 5-455 PAGE 2279 LINE 117139
define pcodeop vpsrlvd_avx2 ;
:VPSRLVD XmmReg1, vexVVVV_XmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_XmmReg; byte=0x45; (XmmReg1 & YmmReg1) ... & XmmReg2_m128
{
	local tmp:16 = vpsrlvd_avx2( vexVVVV_XmmReg, XmmReg2_m128 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPSRLVW/VPSRLVD/VPSRLVQ 5-455 PAGE 2279 LINE 117142
define pcodeop vpsrlvq_avx2 ;
:VPSRLVQ XmmReg1, vexVVVV_XmmReg, XmmReg2_m128 is $(VEX_NDS) & $(VEX_L128) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_XmmReg; byte=0x45; (XmmReg1 & YmmReg1) ... & XmmReg2_m128
{
	local tmp:16 = vpsrlvq_avx2( vexVVVV_XmmReg, XmmReg2_m128 );
	YmmReg1 = zext(tmp);
	# TODO ZmmReg1 = zext(XmmReg1)
}

# VPSRLVW/VPSRLVD/VPSRLVQ 5-455 PAGE 2279 LINE 117145
:VPSRLVD YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W0) & vexVVVV_YmmReg; byte=0x45; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsrlvd_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

# VPSRLVW/VPSRLVD/VPSRLVQ 5-455 PAGE 2279 LINE 117148
:VPSRLVQ YmmReg1, vexVVVV_YmmReg, YmmReg2_m256 is $(VEX_NDS) & $(VEX_L256) & $(VEX_PRE_66) & $(VEX_0F38) & $(VEX_W1) & vexVVVV_YmmReg; byte=0x45; YmmReg1 ... & YmmReg2_m256
{
	YmmReg1 = vpsrlvq_avx2( vexVVVV_YmmReg, YmmReg2_m256 );
	# TODO ZmmReg1 = zext(YmmReg1)
}

