Преглед изворни кода

new avx512-opcodes VBMI2,VNNI,BITALG ...

git-svn-id: branches/tg74/avx512merge@43406 -
tg74 пре 5 година
родитељ
комит
1454e8b29d

+ 0 - 1
.gitattributes

@@ -17615,7 +17615,6 @@ tests/webtbs/tw3216.pp svneol=native#text/plain
 tests/webtbs/tw32160.pp svneol=native#text/plain
 tests/webtbs/tw3217.pp svneol=native#text/plain
 tests/webtbs/tw32179.pp svneol=native#text/plain
-tests/webtbs/tw32219.pp svneol=native#text/plain
 tests/webtbs/tw3222.pp svneol=native#text/plain
 tests/webtbs/tw3226.pp svneol=native#text/plain
 tests/webtbs/tw3227.pp svneol=native#text/plain

+ 26 - 1
compiler/i386/i386att.inc

@@ -1403,5 +1403,30 @@
 'vshuff32x4',
 'vshuff64x2',
 'vshufi32x4',
-'vshufi64x2'
+'vshufi64x2',
+'vpcompressb',
+'vpcompressw',
+'vpdpbusd',
+'vpdpbusds',
+'vpdpwssd',
+'vpdpwssds',
+'vpexpandb',
+'vpexpandw',
+'vpopcntb',
+'vpopcntd',
+'vpopcntq',
+'vpopcntw',
+'vpshldd',
+'vpshldq',
+'vpshldvd',
+'vpshldvq',
+'vpshldvw',
+'vpshldw',
+'vpshrdd',
+'vpshrdq',
+'vpshrdvd',
+'vpshrdvq',
+'vpshrdvw',
+'vpshrdw',
+'vpshufbitqmb'
 );

+ 25 - 0
compiler/i386/i386atts.inc

@@ -1403,5 +1403,30 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufNONE
 );

+ 26 - 1
compiler/i386/i386int.inc

@@ -1403,5 +1403,30 @@
 'vshuff32x4',
 'vshuff64x2',
 'vshufi32x4',
-'vshufi64x2'
+'vshufi64x2',
+'vpcompressb',
+'vpcompressw',
+'vpdpbusd',
+'vpdpbusds',
+'vpdpwssd',
+'vpdpwssds',
+'vpexpandb',
+'vpexpandw',
+'vpopcntb',
+'vpopcntd',
+'vpopcntq',
+'vpopcntw',
+'vpshldd',
+'vpshldq',
+'vpshldvd',
+'vpshldvq',
+'vpshldvw',
+'vpshldw',
+'vpshrdd',
+'vpshrdq',
+'vpshrdvd',
+'vpshrdvq',
+'vpshrdvw',
+'vpshrdw',
+'vpshufbitqmb'
 );

+ 1 - 1
compiler/i386/i386nop.inc

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

+ 26 - 1
compiler/i386/i386op.inc

@@ -1403,5 +1403,30 @@ A_VSCATTERQPS,
 A_VSHUFF32X4,
 A_VSHUFF64X2,
 A_VSHUFI32X4,
-A_VSHUFI64X2
+A_VSHUFI64X2,
+A_VPCOMPRESSB,
+A_VPCOMPRESSW,
+A_VPDPBUSD,
+A_VPDPBUSDS,
+A_VPDPWSSD,
+A_VPDPWSSDS,
+A_VPEXPANDB,
+A_VPEXPANDW,
+A_VPOPCNTB,
+A_VPOPCNTD,
+A_VPOPCNTQ,
+A_VPOPCNTW,
+A_VPSHLDD,
+A_VPSHLDQ,
+A_VPSHLDVD,
+A_VPSHLDVQ,
+A_VPSHLDVW,
+A_VPSHLDW,
+A_VPSHRDD,
+A_VPSHRDQ,
+A_VPSHRDVD,
+A_VPSHRDVQ,
+A_VPSHRDVW,
+A_VPSHRDW,
+A_VPSHUFBITQMB
 );

+ 25 - 0
compiler/i386/i386prop.inc

@@ -1403,5 +1403,30 @@
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
 (Ch: [Ch_All])
 );

+ 917 - 0
compiler/i386/i386tab.inc

@@ -8888,29 +8888,85 @@
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#222#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESDEC;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#222#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESDEC;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#222#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESDECLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESDECLAST;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#223#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESDECLAST;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESENC;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#220#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESENC;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#220#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESENC;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#220#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESENCLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#221#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESENCLAST;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#221#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESENCLAST;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#221#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESIMC;
     ops     : 2;
@@ -28083,5 +28139,866 @@
     optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
     code    : #232#233#234#241#250#1#67#61#80#23;
     flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
   )
 );

+ 26 - 1
compiler/i8086/i8086att.inc

@@ -1417,5 +1417,30 @@
 'vshuff32x4',
 'vshuff64x2',
 'vshufi32x4',
-'vshufi64x2'
+'vshufi64x2',
+'vpcompressb',
+'vpcompressw',
+'vpdpbusd',
+'vpdpbusds',
+'vpdpwssd',
+'vpdpwssds',
+'vpexpandb',
+'vpexpandw',
+'vpopcntb',
+'vpopcntd',
+'vpopcntq',
+'vpopcntw',
+'vpshldd',
+'vpshldq',
+'vpshldvd',
+'vpshldvq',
+'vpshldvw',
+'vpshldw',
+'vpshrdd',
+'vpshrdq',
+'vpshrdvd',
+'vpshrdvq',
+'vpshrdvw',
+'vpshrdw',
+'vpshufbitqmb'
 );

+ 25 - 0
compiler/i8086/i8086atts.inc

@@ -1417,5 +1417,30 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufNONE
 );

+ 26 - 1
compiler/i8086/i8086int.inc

@@ -1417,5 +1417,30 @@
 'vshuff32x4',
 'vshuff64x2',
 'vshufi32x4',
-'vshufi64x2'
+'vshufi64x2',
+'vpcompressb',
+'vpcompressw',
+'vpdpbusd',
+'vpdpbusds',
+'vpdpwssd',
+'vpdpwssds',
+'vpexpandb',
+'vpexpandw',
+'vpopcntb',
+'vpopcntd',
+'vpopcntq',
+'vpopcntw',
+'vpshldd',
+'vpshldq',
+'vpshldvd',
+'vpshldvq',
+'vpshldvw',
+'vpshldw',
+'vpshrdd',
+'vpshrdq',
+'vpshrdvd',
+'vpshrdvq',
+'vpshrdvw',
+'vpshrdw',
+'vpshufbitqmb'
 );

+ 1 - 1
compiler/i8086/i8086nop.inc

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

+ 26 - 1
compiler/i8086/i8086op.inc

@@ -1417,5 +1417,30 @@ A_VSCATTERQPS,
 A_VSHUFF32X4,
 A_VSHUFF64X2,
 A_VSHUFI32X4,
-A_VSHUFI64X2
+A_VSHUFI64X2,
+A_VPCOMPRESSB,
+A_VPCOMPRESSW,
+A_VPDPBUSD,
+A_VPDPBUSDS,
+A_VPDPWSSD,
+A_VPDPWSSDS,
+A_VPEXPANDB,
+A_VPEXPANDW,
+A_VPOPCNTB,
+A_VPOPCNTD,
+A_VPOPCNTQ,
+A_VPOPCNTW,
+A_VPSHLDD,
+A_VPSHLDQ,
+A_VPSHLDVD,
+A_VPSHLDVQ,
+A_VPSHLDVW,
+A_VPSHLDW,
+A_VPSHRDD,
+A_VPSHRDQ,
+A_VPSHRDVD,
+A_VPSHRDVQ,
+A_VPSHRDVW,
+A_VPSHRDW,
+A_VPSHUFBITQMB
 );

+ 25 - 0
compiler/i8086/i8086prop.inc

@@ -1417,5 +1417,30 @@
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
 (Ch: [Ch_All])
 );

+ 917 - 0
compiler/i8086/i8086tab.inc

@@ -8916,29 +8916,85 @@
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#222#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESDEC;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#222#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESDEC;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#222#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESDECLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESDECLAST;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#223#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESDECLAST;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESENC;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#220#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESENC;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#220#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESENC;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#220#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESENCLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#221#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESENCLAST;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#221#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESENCLAST;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#221#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESIMC;
     ops     : 2;
@@ -28307,5 +28363,866 @@
     optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
     code    : #232#233#234#241#250#1#67#61#80#23;
     flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
   )
 );

+ 13 - 10
compiler/ppcx64.lpi

@@ -1,7 +1,7 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <CONFIG>
   <ProjectOptions>
-    <Version Value="9"/>
+    <Version Value="11"/>
     <PathDelim Value="\"/>
     <General>
       <Flags>
@@ -19,26 +19,30 @@
     </BuildModes>
     <PublishOptions>
       <Version Value="2"/>
-      <DestinationDirectory Value="$(TestDir)\publishedproject\"/>
-      <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
-      <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
     </PublishOptions>
     <RunParams>
       <local>
-        <FormatVersion Value="1"/>
-        <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
+        <CommandLineParams Value="\tmp\fpc.pp -Fu\home\torsten\fpc\rtl\units\x86_64-linux"/>
+        <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
       </local>
+      <FormatVersion Value="2"/>
+      <Modes Count="1">
+        <Mode0 Name="default">
+          <local>
+            <CommandLineParams Value="\tmp\fpc.pp -Fu\home\torsten\fpc\rtl\units\x86_64-linux"/>
+            <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
+          </local>
+        </Mode0>
+      </Modes>
     </RunParams>
     <Units Count="2">
       <Unit0>
         <Filename Value="pp.pas"/>
         <IsPartOfProject Value="True"/>
-        <UnitName Value="pp"/>
       </Unit0>
       <Unit1>
         <Filename Value="x86\aasmcpu.pas"/>
         <IsPartOfProject Value="True"/>
-        <UnitName Value="aasmcpu"/>
       </Unit1>
     </Units>
   </ProjectOptions>
@@ -71,7 +75,6 @@
         <StopAfterErrCount Value="50"/>
       </ConfigFile>
       <CustomOptions Value="-dx86_64"/>
-      <CompilerPath Value="$(CompPath)"/>
     </Other>
   </CompilerOptions>
 </CONFIG>

+ 216 - 5
compiler/x86/x86ins.dat

@@ -3650,21 +3650,28 @@ xmmreg,xmmreg,xmmrm                  \334\362\370\1\xD0\75\120            AVX,SA
 
 [VAESDEC]
 (Ch_All)
-xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDE\75\120             AVX,SANDYBRIDGE,TFV
+xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDE\75\120             AVX512,TFV
+ymmreg,ymmreg,ymmrm                       \350\361\362\364\371\1\xDE\75\120         AVX,SANDYBRIDGE,TFV
+zmmreg,zmmreg,zmmrm                       \350\351\361\371\1\xDE\75\120             AVX512,TFV
 
 
 [VAESDECLAST]
 (Ch_All)
-xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDF\75\120             AVX,SANDYBRIDGE,TFV
-
+xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDF\75\120             AVX512,TFV
+ymmreg,ymmreg,ymmrm                       \350\361\362\364\371\1\xDF\75\120         AVX,SANDYBRIDGE,TFV
+zmmreg,zmmreg,zmmrm                       \350\351\361\371\1\xDF\75\120             AVX512,TFV
 
 [VAESENC]
 (Ch_All)
-xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDC\75\120             AVX,SANDYBRIDGE,TFV
+xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDC\75\120             AVX512,TFV
+ymmreg,ymmreg,ymmrm                       \350\361\362\364\371\1\xDC\75\120         AVX,SANDYBRIDGE,TFV
+zmmreg,zmmreg,zmmrm                       \350\351\361\371\1\xDC\75\120             AVX512,TFV
 
 [VAESENCLAST]
 (Ch_All)
-xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDD\75\120             AVX,SANDYBRIDGE,TFV
+xmmreg,xmmreg,xmmrm                       \350\361\362\371\1\xDD\75\120             AVX512,TFV
+ymmreg,ymmreg,ymmrm                       \350\361\362\364\371\1\xDD\75\120         AVX,SANDYBRIDGE,TFV
+zmmreg,zmmreg,zmmrm                       \350\351\361\371\1\xDD\75\120             AVX512,TFV
 
 
 [VAESIMC]
@@ -8905,3 +8912,207 @@ ymmreg_mz,ymmreg,bmem64,imm8              \350\352\361\364\372\1\x43\75\120\27
 zmmreg_mz,zmmreg,zmmrm,imm8               \350\351\352\361\372\1\x43\75\120\27      AVX512,TFV
 zmmreg_mz,zmmreg,bmem64,imm8              \350\351\352\361\372\1\x43\75\120\27      AVX512,TFV
 
+
+
+
+
+[VPCOMPRESSB]
+(Ch_All)
+mem128_m,xmmreg                           \350\361\371\1\x63\101                    AVX512,T1S
+mem256_m,ymmreg                           \350\361\364\371\1\x63\101                AVX512,T1S
+mem512_m,zmmreg                           \350\351\361\371\1\x63\101                AVX512,T1S
+xmmreg_mz,xmmreg                          \350\361\371\1\x63\101                    AVX512
+ymmreg_mz,ymmreg                          \350\361\364\371\1\x63\101                AVX512
+zmmreg_mz,zmmreg                          \350\351\361\371\1\x63\101                AVX512
+
+[VPCOMPRESSW]
+(Ch_All)
+mem128_m,xmmreg                           \350\352\361\371\1\x63\101                AVX512,T1S
+mem256_m,ymmreg                           \350\352\361\364\371\1\x63\101            AVX512,T1S
+mem512_m,zmmreg                           \350\351\352\361\371\1\x63\101            AVX512,T1S
+xmmreg_mz,xmmreg                          \350\352\361\371\1\x63\101                AVX512
+ymmreg_mz,ymmreg                          \350\352\361\364\371\1\x63\101            AVX512
+zmmreg_mz,zmmreg                          \350\351\352\361\371\1\x63\101            AVX512
+
+[VPDPBUSD]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\361\371\1\x50\75\120                 AVX512,TFV
+xmmreg_mz,xmmreg,bmem32                   \350\361\371\1\x50\75\120                 AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\361\364\371\1\x50\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,bmem32                   \350\361\364\371\1\x50\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\361\371\1\x50\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,bmem32                   \350\351\361\371\1\x50\75\120             AVX512,TFV
+
+[VPDPBUSDS]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\361\371\1\x51\75\120                 AVX512,TFV
+xmmreg_mz,xmmreg,bmem32                   \350\361\371\1\x51\75\120                 AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\361\364\371\1\x51\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,bmem32                   \350\361\364\371\1\x51\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\361\371\1\x51\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,bmem32                   \350\351\361\371\1\x51\75\120             AVX512,TFV
+
+[VPDPWSSD]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\361\371\1\x52\75\120                 AVX512,TFV
+xmmreg_mz,xmmreg,bmem32                   \350\361\371\1\x52\75\120                 AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\361\364\371\1\x52\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,bmem32                   \350\361\364\371\1\x52\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\361\371\1\x52\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,bmem32                   \350\351\361\371\1\x52\75\120             AVX512,TFV
+
+[VPDPWSSDS]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\361\371\1\x53\75\120                 AVX512,TFV
+xmmreg_mz,xmmreg,bmem32                   \350\361\371\1\x53\75\120                 AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\361\364\371\1\x53\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,bmem32                   \350\361\364\371\1\x53\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\361\371\1\x53\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,bmem32                   \350\351\361\371\1\x53\75\120             AVX512,TFV
+
+[VPEXPANDB]
+(Ch_All)
+mem128_m,xmmreg                           \350\361\371\1\x62\101                    AVX512,T1S
+mem256_m,ymmreg                           \350\361\364\371\1\x62\101                AVX512,T1S
+mem512_m,zmmreg                           \350\351\361\371\1\x62\101                AVX512,T1S
+xmmreg_mz,xmmreg                          \350\361\371\1\x62\101                    AVX512
+ymmreg_mz,ymmreg                          \350\361\364\371\1\x62\101                AVX512
+zmmreg_mz,zmmreg                          \350\351\361\371\1\x62\101                AVX512
+
+[VPEXPANDW]
+(Ch_All)
+mem128_m,xmmreg                           \350\352\361\371\1\x62\101                AVX512,T1S
+mem256_m,ymmreg                           \350\352\361\364\371\1\x62\101            AVX512,T1S
+mem512_m,zmmreg                           \350\351\352\361\371\1\x62\101            AVX512,T1S
+xmmreg_mz,xmmreg                          \350\352\361\371\1\x62\101                AVX512
+ymmreg_mz,ymmreg                          \350\352\361\364\371\1\x62\101            AVX512
+zmmreg_mz,zmmreg                          \350\351\352\361\371\1\x62\101            AVX512
+
+[VPOPCNTB]
+(Ch_All)
+xmmreg_mz,xmmrm                           \350\361\371\1\x54\110                    AVX512,TFVM
+ymmreg_mz,ymmrm                           \350\361\364\371\1\x54\110                AVX512,TFVM
+zmmreg_mz,zmmrm                           \350\351\361\371\1\x54\110                AVX512,TFVM
+
+[VPOPCNTD]
+(Ch_All)
+xmmreg_mz,xmmrm                           \350\361\371\1\x55\110                    AVX512,TFV
+ymmreg_mz,ymmrm                           \350\361\364\371\1\x55\110                AVX512,TFV
+zmmreg_mz,zmmrm                           \350\351\361\371\1\x55\110                AVX512,TFV
+
+[VPOPCNTQ]
+(Ch_All)
+xmmreg_mz,xmmrm                           \350\352\361\371\1\x55\110                AVX512,TFV
+ymmreg_mz,ymmrm                           \350\352\361\364\371\1\x55\110            AVX512,TFV
+zmmreg_mz,zmmrm                           \350\351\352\361\371\1\x55\110            AVX512,TFV
+
+[VPOPCNTW]
+(Ch_All)
+xmmreg_mz,xmmrm                           \350\352\361\371\1\x54\110                AVX512,TFVM
+ymmreg_mz,ymmrm                           \350\352\361\364\371\1\x54\110            AVX512,TFVM
+zmmreg_mz,zmmrm                           \350\351\352\361\371\1\x54\110            AVX512,TFVM
+
+[VPSHLDD]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm,imm8               \350\361\372\1\x71\75\120\27              AVX512,TFV
+xmmreg_mz,xmmreg,bmem32,imm8              \350\361\372\1\x71\75\120\27              AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm,imm8               \350\361\364\372\1\x71\75\120\27          AVX512,TFV
+ymmreg_mz,ymmreg,bmem32,imm8              \350\361\364\372\1\x71\75\120\27          AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm,imm8               \350\351\361\372\1\x71\75\120\27          AVX512,TFV
+zmmreg_mz,zmmreg,bmem32,imm8              \350\351\361\372\1\x71\75\120\27          AVX512,TFV
+
+[VPSHLDQ]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm,imm8               \350\352\361\372\1\x71\75\120\27          AVX512,TFV
+xmmreg_mz,xmmreg,bmem64,imm8              \350\352\361\372\1\x71\75\120\27          AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm,imm8               \350\352\361\364\372\1\x71\75\120\27      AVX512,TFV
+ymmreg_mz,ymmreg,bmem64,imm8              \350\352\361\364\372\1\x71\75\120\27      AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm,imm8               \350\351\352\361\372\1\x71\75\120\27      AVX512,TFV
+zmmreg_mz,zmmreg,bmem64,imm8              \350\351\352\361\372\1\x71\75\120\27      AVX512,TFV
+
+[VPSHLDVD]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\361\371\1\x71\75\120                 AVX512,TFV
+xmmreg_mz,xmmreg,bmem32                   \350\361\371\1\x71\75\120                 AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\361\364\371\1\x71\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,bmem32                   \350\361\364\371\1\x71\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\361\371\1\x71\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,bmem32                   \350\351\361\371\1\x71\75\120             AVX512,TFV
+
+[VPSHLDVQ]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\352\361\371\1\x71\75\120             AVX512,TFV
+xmmreg_mz,xmmreg,bmem64                   \350\352\361\371\1\x71\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\352\361\364\371\1\x71\75\120         AVX512,TFV
+ymmreg_mz,ymmreg,bmem64                   \350\352\361\364\371\1\x71\75\120         AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\352\361\371\1\x71\75\120         AVX512,TFV
+zmmreg_mz,zmmreg,bmem64                   \350\351\352\361\371\1\x71\75\120         AVX512,TFV
+
+[VPSHLDVW]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\352\361\371\1\x70\75\120             AVX512,TFVM
+ymmreg_mz,ymmreg,ymmrm                    \350\352\361\364\371\1\x70\75\120         AVX512,TFVM
+zmmreg_mz,zmmreg,zmmrm                    \350\351\352\361\371\1\x70\75\120         AVX512,TFVM
+
+[VPSHLDW]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm,imm8               \350\352\361\372\1\x70\75\120\27          AVX512,TFVM
+ymmreg_mz,ymmreg,ymmrm,imm8               \350\352\361\364\372\1\x70\75\120\27      AVX512,TFVM
+zmmreg_mz,zmmreg,zmmrm,imm8               \350\351\352\361\372\1\x70\75\120\27      AVX512,TFVM
+
+[VPSHRDD]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm,imm8               \350\361\372\1\x73\75\120\27              AVX512,TFV
+xmmreg_mz,xmmreg,bmem32,imm8              \350\361\372\1\x73\75\120\27              AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm,imm8               \350\361\364\372\1\x73\75\120\27          AVX512,TFV
+ymmreg_mz,ymmreg,bmem32,imm8              \350\361\364\372\1\x73\75\120\27          AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm,imm8               \350\351\361\372\1\x73\75\120\27          AVX512,TFV
+zmmreg_mz,zmmreg,bmem32,imm8              \350\351\361\372\1\x73\75\120\27          AVX512,TFV
+
+[VPSHRDQ]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm,imm8               \350\352\361\372\1\x73\75\120\27          AVX512,TFV
+xmmreg_mz,xmmreg,bmem64,imm8              \350\352\361\372\1\x73\75\120\27          AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm,imm8               \350\352\361\364\372\1\x73\75\120\27      AVX512,TFV
+ymmreg_mz,ymmreg,bmem64,imm8              \350\352\361\364\372\1\x73\75\120\27      AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm,imm8               \350\351\352\361\372\1\x73\75\120\27      AVX512,TFV
+zmmreg_mz,zmmreg,bmem64,imm8              \350\351\352\361\372\1\x73\75\120\27      AVX512,TFV
+
+[VPSHRDVD]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\361\371\1\x73\75\120                 AVX512,TFV
+xmmreg_mz,xmmreg,bmem32                   \350\361\371\1\x73\75\120                 AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\361\364\371\1\x73\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,bmem32                   \350\361\364\371\1\x73\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\361\371\1\x73\75\120             AVX512,TFV
+zmmreg_mz,zmmreg,bmem32                   \350\351\361\371\1\x73\75\120             AVX512,TFV
+
+[VPSHRDVQ]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\352\361\371\1\x73\75\120             AVX512,TFV
+xmmreg_mz,xmmreg,bmem64                   \350\352\361\371\1\x73\75\120             AVX512,TFV
+ymmreg_mz,ymmreg,ymmrm                    \350\352\361\364\371\1\x73\75\120         AVX512,TFV
+ymmreg_mz,ymmreg,bmem64                   \350\352\361\364\371\1\x73\75\120         AVX512,TFV
+zmmreg_mz,zmmreg,zmmrm                    \350\351\352\361\371\1\x73\75\120         AVX512,TFV
+zmmreg_mz,zmmreg,bmem64                   \350\351\352\361\371\1\x73\75\120         AVX512,TFV
+
+[VPSHRDVW]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm                    \350\352\361\371\1\x72\75\120             AVX512,TFVM
+ymmreg_mz,ymmreg,ymmrm                    \350\352\361\364\371\1\x72\75\120         AVX512,TFVM
+zmmreg_mz,zmmreg,zmmrm                    \350\351\352\361\371\1\x72\75\120         AVX512,TFVM
+
+[VPSHRDW]
+(Ch_All)
+xmmreg_mz,xmmreg,xmmrm,imm8               \350\352\361\372\1\x72\75\120\27          AVX512,TFVM
+ymmreg_mz,ymmreg,ymmrm,imm8               \350\352\361\364\372\1\x72\75\120\27      AVX512,TFVM
+zmmreg_mz,zmmreg,zmmrm,imm8               \350\351\352\361\372\1\x72\75\120\27      AVX512,TFVM
+
+[VPSHUFBITQMB]
+(Ch_All)
+kreg_m,xmmreg,xmmrm                       \350\361\371\1\x8F\75\120                 AVX512,TFVM
+kreg_m,ymmreg,ymmrm                       \350\361\364\371\1\x8F\75\120             AVX512,TFVM
+kreg_m,zmmreg,zmmrm                       \350\351\361\371\1\x8F\75\120             AVX512,TFVM
+
+
+

+ 25 - 0
compiler/x86_64/x8664ats.inc

@@ -1399,5 +1399,30 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufNONE
 );

+ 26 - 1
compiler/x86_64/x8664att.inc

@@ -1399,5 +1399,30 @@
 'vshuff32x4',
 'vshuff64x2',
 'vshufi32x4',
-'vshufi64x2'
+'vshufi64x2',
+'vpcompressb',
+'vpcompressw',
+'vpdpbusd',
+'vpdpbusds',
+'vpdpwssd',
+'vpdpwssds',
+'vpexpandb',
+'vpexpandw',
+'vpopcntb',
+'vpopcntd',
+'vpopcntq',
+'vpopcntw',
+'vpshldd',
+'vpshldq',
+'vpshldvd',
+'vpshldvq',
+'vpshldvw',
+'vpshldw',
+'vpshrdd',
+'vpshrdq',
+'vpshrdvd',
+'vpshrdvq',
+'vpshrdvw',
+'vpshrdw',
+'vpshufbitqmb'
 );

+ 26 - 1
compiler/x86_64/x8664int.inc

@@ -1399,5 +1399,30 @@
 'vshuff32x4',
 'vshuff64x2',
 'vshufi32x4',
-'vshufi64x2'
+'vshufi64x2',
+'vpcompressb',
+'vpcompressw',
+'vpdpbusd',
+'vpdpbusds',
+'vpdpwssd',
+'vpdpwssds',
+'vpexpandb',
+'vpexpandw',
+'vpopcntb',
+'vpopcntd',
+'vpopcntq',
+'vpopcntw',
+'vpshldd',
+'vpshldq',
+'vpshldvd',
+'vpshldvq',
+'vpshldvw',
+'vpshldw',
+'vpshrdd',
+'vpshrdq',
+'vpshrdvd',
+'vpshrdvq',
+'vpshrdvw',
+'vpshrdw',
+'vpshufbitqmb'
 );

+ 1 - 1
compiler/x86_64/x8664nop.inc

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

+ 26 - 1
compiler/x86_64/x8664op.inc

@@ -1399,5 +1399,30 @@ A_VSCATTERQPS,
 A_VSHUFF32X4,
 A_VSHUFF64X2,
 A_VSHUFI32X4,
-A_VSHUFI64X2
+A_VSHUFI64X2,
+A_VPCOMPRESSB,
+A_VPCOMPRESSW,
+A_VPDPBUSD,
+A_VPDPBUSDS,
+A_VPDPWSSD,
+A_VPDPWSSDS,
+A_VPEXPANDB,
+A_VPEXPANDW,
+A_VPOPCNTB,
+A_VPOPCNTD,
+A_VPOPCNTQ,
+A_VPOPCNTW,
+A_VPSHLDD,
+A_VPSHLDQ,
+A_VPSHLDVD,
+A_VPSHLDVQ,
+A_VPSHLDVW,
+A_VPSHLDW,
+A_VPSHRDD,
+A_VPSHRDQ,
+A_VPSHRDVD,
+A_VPSHRDVQ,
+A_VPSHRDVW,
+A_VPSHRDW,
+A_VPSHUFBITQMB
 );

+ 25 - 0
compiler/x86_64/x8664pro.inc

@@ -1399,5 +1399,30 @@
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
 (Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
+(Ch: [Ch_All]),
 (Ch: [Ch_All])
 );

+ 917 - 0
compiler/x86_64/x8664tab.inc

@@ -9189,29 +9189,85 @@
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#222#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESDEC;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#222#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESDEC;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#222#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESDECLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESDECLAST;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#223#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESDECLAST;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#223#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESENC;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#220#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESENC;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#220#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESENC;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#220#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESENCLAST;
     ops     : 3;
     optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none);
     code    : #232#241#242#249#1#221#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VAESENCLAST;
+    ops     : 3;
+    optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#242#244#249#1#221#61#80;
     flags   : [if_avx,if_sandybridge,if_tfv]
   ),
+  (
+    opcode  : A_VAESENCLAST;
+    ops     : 3;
+    optypes : (ot_zmmreg,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#221#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
   (
     opcode  : A_VAESIMC;
     ops     : 2;
@@ -28531,5 +28587,866 @@
     optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
     code    : #232#233#234#241#250#1#67#61#80#23;
     flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#99#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPCOMPRESSW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#99#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#80#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPBUSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#81#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#82#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPDPWSSDS;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#83#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#241#244#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem128_m,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem256_m,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_mem512_m,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#98#65;
+    flags   : [if_avx512,if_t1s]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
+    code    : #232#234#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPEXPANDW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#98#65;
+    flags   : [if_avx512]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTB;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#241#244#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTD;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTQ;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#85#72;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
+    code    : #232#234#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_ymmreg_mz,ot_ymmrm,ot_none,ot_none);
+    code    : #232#234#241#244#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPOPCNTW;
+    ops     : 2;
+    optypes : (ot_zmmreg_mz,ot_zmmrm,ot_none,ot_none);
+    code    : #232#233#234#241#249#1#84#72;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#113#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#113#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDVW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#112#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHLDW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#112#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDD;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_immediate or ot_bits8);
+    code    : #232#233#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDQ;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#115#61#80#23;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem32,ot_none);
+    code    : #232#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem32,ot_none);
+    code    : #232#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVD;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem32,ot_none);
+    code    : #232#233#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_bmem64,ot_none);
+    code    : #232#234#241#244#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVQ;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_bmem64,ot_none);
+    code    : #232#233#234#241#249#1#115#61#80;
+    flags   : [if_avx512,if_tfv]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#234#241#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#234#241#244#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDVW;
+    ops     : 3;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#234#241#249#1#114#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_xmmreg_mz,ot_xmmreg,ot_xmmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_ymmreg_mz,ot_ymmreg,ot_ymmrm,ot_immediate or ot_bits8);
+    code    : #232#234#241#244#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHRDW;
+    ops     : 4;
+    optypes : (ot_zmmreg_mz,ot_zmmreg,ot_zmmrm,ot_immediate or ot_bits8);
+    code    : #232#233#234#241#250#1#114#61#80#23;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_xmmreg,ot_xmmrm,ot_none);
+    code    : #232#241#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_ymmreg,ot_ymmrm,ot_none);
+    code    : #232#241#244#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
+  ),
+  (
+    opcode  : A_VPSHUFBITQMB;
+    ops     : 3;
+    optypes : (ot_kreg_m,ot_zmmreg,ot_zmmrm,ot_none);
+    code    : #232#233#241#249#1#143#61#80;
+    flags   : [if_avx512,if_tfvm]
   )
 );

+ 137 - 2
tests/utils/avx/avxopcodes.pas

@@ -3135,8 +3135,143 @@ begin
   FOpCodeList.Add('vshufi64x2,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8');
   FOpCodeList.Add('vshufi64x2,1,1,1,zmmreg_mz,zmmreg,8b64,imm8');
     
-  FOpCodeList.Add('movntss,1,1,1,MEM32,XMMREG,');
-  FOpCodeList.Add('movntsd,1,1,1,MEM64,XMMREG,');  
+  FOpCodeList.Add('movntss,1,1,0,MEM32,XMMREG,');
+  FOpCodeList.Add('movntsd,1,1,0,MEM64,XMMREG,');
+  
+  FOpCodeList.Add('VAESDEC,1,1,1,xmmreg,xmmreg,xmmrm,');
+  FOpCodeList.Add('VAESDEC,1,1,1,zmmreg,zmmreg,zmmrm,');
+  FOpCodeList.Add('VAESDECLAST,1,1,1,xmmreg,xmmreg,xmmrm,');
+  FOpCodeList.Add('VAESDECLAST,1,1,1,zmmreg,zmmreg,zmmrm,');
+  FOpCodeList.Add('VAESENC,1,1,1,xmmreg,xmmreg,xmmrm,');
+  FOpCodeList.Add('VAESENC,1,1,1,zmmreg,zmmreg,zmmrm,');
+  FOpCodeList.Add('VAESENCLAST,1,1,1,xmmreg,xmmreg,xmmrm,');
+  FOpCodeList.Add('VAESENCLAST,1,1,1,zmmreg,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPCOMPRESSB,1,1,1,mem128_m,xmmreg,,');
+  FOpCodeList.Add('VPCOMPRESSB,1,1,1,mem256_m,ymmreg,,');
+  FOpCodeList.Add('VPCOMPRESSB,1,1,1,mem512_m,zmmreg,,');
+  FOpCodeList.Add('VPCOMPRESSB,1,1,1,xmmreg_mz,xmmreg,,');
+  FOpCodeList.Add('VPCOMPRESSB,1,1,1,ymmreg_mz,ymmreg,,');
+  FOpCodeList.Add('VPCOMPRESSB,1,1,1,zmmreg_mz,zmmreg,,');
+  FOpCodeList.Add('VPCOMPRESSW,1,1,1,mem128_m,xmmreg,,');
+  FOpCodeList.Add('VPCOMPRESSW,1,1,1,mem256_m,ymmreg,,');
+  FOpCodeList.Add('VPCOMPRESSW,1,1,1,mem512_m,zmmreg,,');
+  FOpCodeList.Add('VPCOMPRESSW,1,1,1,xmmreg_mz,xmmreg,,');
+  FOpCodeList.Add('VPCOMPRESSW,1,1,1,ymmreg_mz,ymmreg,,');
+  FOpCodeList.Add('VPCOMPRESSW,1,1,1,zmmreg_mz,zmmreg,,');
+  FOpCodeList.Add('VPDPBUSD,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPDPBUSD,1,1,1,xmmreg_mz,xmmreg,4B32,');
+  FOpCodeList.Add('VPDPBUSD,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPDPBUSD,1,1,1,ymmreg_mz,ymmreg,8B32,');
+  FOpCodeList.Add('VPDPBUSD,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPDPBUSD,1,1,1,zmmreg_mz,zmmreg,16B32,');
+  FOpCodeList.Add('VPDPBUSDS,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPDPBUSDS,1,1,1,xmmreg_mz,xmmreg,4B32,');
+  FOpCodeList.Add('VPDPBUSDS,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPDPBUSDS,1,1,1,ymmreg_mz,ymmreg,8B32,');
+  FOpCodeList.Add('VPDPBUSDS,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPDPBUSDS,1,1,1,zmmreg_mz,zmmreg,16B32,');
+  FOpCodeList.Add('VPDPWSSD,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPDPWSSD,1,1,1,xmmreg_mz,xmmreg,4B32,');
+  FOpCodeList.Add('VPDPWSSD,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPDPWSSD,1,1,1,ymmreg_mz,ymmreg,8B32,');
+  FOpCodeList.Add('VPDPWSSD,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPDPWSSD,1,1,1,zmmreg_mz,zmmreg,16B32,');
+  FOpCodeList.Add('VPDPWSSDS,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPDPWSSDS,1,1,1,xmmreg_mz,xmmreg,4B32,');
+  FOpCodeList.Add('VPDPWSSDS,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPDPWSSDS,1,1,1,ymmreg_mz,ymmreg,8B32,');
+  FOpCodeList.Add('VPDPWSSDS,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPDPWSSDS,1,1,1,zmmreg_mz,zmmreg,16B32,');
+  FOpCodeList.Add('VPEXPANDB,1,1,1,mem128_m,xmmreg,,');
+  FOpCodeList.Add('VPEXPANDB,1,1,1,mem256_m,ymmreg,,');
+  FOpCodeList.Add('VPEXPANDB,1,1,1,mem512_m,zmmreg,,');
+  FOpCodeList.Add('VPEXPANDB,1,1,1,xmmreg_mz,xmmreg,,');
+  FOpCodeList.Add('VPEXPANDB,1,1,1,ymmreg_mz,ymmreg,,');
+  FOpCodeList.Add('VPEXPANDB,1,1,1,zmmreg_mz,zmmreg,,');
+  FOpCodeList.Add('VPEXPANDW,1,1,1,mem128_m,xmmreg,,');
+  FOpCodeList.Add('VPEXPANDW,1,1,1,mem256_m,ymmreg,,');
+  FOpCodeList.Add('VPEXPANDW,1,1,1,mem512_m,zmmreg,,');
+  FOpCodeList.Add('VPEXPANDW,1,1,1,xmmreg_mz,xmmreg,,');
+  FOpCodeList.Add('VPEXPANDW,1,1,1,ymmreg_mz,ymmreg,,');
+  FOpCodeList.Add('VPEXPANDW,1,1,1,zmmreg_mz,zmmreg,,');
+  FOpCodeList.Add('VPOPCNTB,1,1,1,xmmreg_mz,xmmrm,,');
+  FOpCodeList.Add('VPOPCNTB,1,1,1,ymmreg_mz,ymmrm,,');
+  FOpCodeList.Add('VPOPCNTB,1,1,1,zmmreg_mz,zmmrm,,');
+  FOpCodeList.Add('VPOPCNTD,1,1,1,xmmreg_mz,xmmrm,,');
+  FOpCodeList.Add('VPOPCNTD,1,1,1,ymmreg_mz,ymmrm,,');
+  FOpCodeList.Add('VPOPCNTD,1,1,1,zmmreg_mz,zmmrm,,');
+  FOpCodeList.Add('VPOPCNTQ,1,1,1,xmmreg_mz,xmmrm,,');
+  FOpCodeList.Add('VPOPCNTQ,1,1,1,ymmreg_mz,ymmrm,,');
+  FOpCodeList.Add('VPOPCNTQ,1,1,1,zmmreg_mz,zmmrm,,');
+  FOpCodeList.Add('VPOPCNTW,1,1,1,xmmreg_mz,xmmrm,,');
+  FOpCodeList.Add('VPOPCNTW,1,1,1,ymmreg_mz,ymmrm,,');
+  FOpCodeList.Add('VPOPCNTW,1,1,1,zmmreg_mz,zmmrm,,');
+  FOpCodeList.Add('VPSHLDD,1,1,1,xmmreg_mz,xmmreg,xmmrm,imm8');
+  FOpCodeList.Add('VPSHLDD,1,1,1,xmmreg_mz,xmmreg,4B32,imm8');
+  FOpCodeList.Add('VPSHLDD,1,1,1,ymmreg_mz,ymmreg,ymmrm,imm8');
+  FOpCodeList.Add('VPSHLDD,1,1,1,ymmreg_mz,ymmreg,8B32,imm8');
+  FOpCodeList.Add('VPSHLDD,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8');
+  FOpCodeList.Add('VPSHLDD,1,1,1,zmmreg_mz,zmmreg,16B32,imm8');
+  FOpCodeList.Add('VPSHLDQ,1,1,1,xmmreg_mz,xmmreg,xmmrm,imm8');
+  FOpCodeList.Add('VPSHLDQ,1,1,1,xmmreg_mz,xmmreg,2B64,imm8');
+  FOpCodeList.Add('VPSHLDQ,1,1,1,ymmreg_mz,ymmreg,ymmrm,imm8');
+  FOpCodeList.Add('VPSHLDQ,1,1,1,ymmreg_mz,ymmreg,4B64,imm8');
+  FOpCodeList.Add('VPSHLDQ,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8');
+  FOpCodeList.Add('VPSHLDQ,1,1,1,zmmreg_mz,zmmreg,8B64,imm8');
+  FOpCodeList.Add('VPSHLDVD,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPSHLDVD,1,1,1,xmmreg_mz,xmmreg,4B32,');
+  FOpCodeList.Add('VPSHLDVD,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPSHLDVD,1,1,1,ymmreg_mz,ymmreg,8B32,');
+  FOpCodeList.Add('VPSHLDVD,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPSHLDVD,1,1,1,zmmreg_mz,zmmreg,16B32,');
+  FOpCodeList.Add('VPSHLDVQ,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPSHLDVQ,1,1,1,xmmreg_mz,xmmreg,2B64,');
+  FOpCodeList.Add('VPSHLDVQ,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPSHLDVQ,1,1,1,ymmreg_mz,ymmreg,4B64,');
+  FOpCodeList.Add('VPSHLDVQ,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPSHLDVQ,1,1,1,zmmreg_mz,zmmreg,8B64,');
+  FOpCodeList.Add('VPSHLDVW,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPSHLDVW,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPSHLDVW,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPSHLDW,1,1,1,xmmreg_mz,xmmreg,xmmrm,imm8');
+  FOpCodeList.Add('VPSHLDW,1,1,1,ymmreg_mz,ymmreg,ymmrm,imm8');
+  FOpCodeList.Add('VPSHLDW,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8');
+  FOpCodeList.Add('VPSHRDD,1,1,1,xmmreg_mz,xmmreg,xmmrm,imm8');
+  FOpCodeList.Add('VPSHRDD,1,1,1,xmmreg_mz,xmmreg,4B32,imm8');
+  FOpCodeList.Add('VPSHRDD,1,1,1,ymmreg_mz,ymmreg,ymmrm,imm8');
+  FOpCodeList.Add('VPSHRDD,1,1,1,ymmreg_mz,ymmreg,8B32,imm8');
+  FOpCodeList.Add('VPSHRDD,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8');
+  FOpCodeList.Add('VPSHRDD,1,1,1,zmmreg_mz,zmmreg,16B32,imm8');
+  FOpCodeList.Add('VPSHRDQ,1,1,1,xmmreg_mz,xmmreg,xmmrm,imm8');
+  FOpCodeList.Add('VPSHRDQ,1,1,1,xmmreg_mz,xmmreg,2B64,imm8');
+  FOpCodeList.Add('VPSHRDQ,1,1,1,ymmreg_mz,ymmreg,ymmrm,imm8');
+  FOpCodeList.Add('VPSHRDQ,1,1,1,ymmreg_mz,ymmreg,4B64,imm8');
+  FOpCodeList.Add('VPSHRDQ,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8');
+  FOpCodeList.Add('VPSHRDQ,1,1,1,zmmreg_mz,zmmreg,8B64,imm8');
+  FOpCodeList.Add('VPSHRDVD,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPSHRDVD,1,1,1,xmmreg_mz,xmmreg,4B32,');
+  FOpCodeList.Add('VPSHRDVD,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPSHRDVD,1,1,1,ymmreg_mz,ymmreg,8B32,');
+  FOpCodeList.Add('VPSHRDVD,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPSHRDVD,1,1,1,zmmreg_mz,zmmreg,16B32,');
+  FOpCodeList.Add('VPSHRDVQ,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPSHRDVQ,1,1,1,xmmreg_mz,xmmreg,2B64,');
+  FOpCodeList.Add('VPSHRDVQ,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPSHRDVQ,1,1,1,ymmreg_mz,ymmreg,4B64,');
+  FOpCodeList.Add('VPSHRDVQ,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPSHRDVQ,1,1,1,zmmreg_mz,zmmreg,8B64,');
+  FOpCodeList.Add('VPSHRDVW,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPSHRDVW,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPSHRDVW,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
+  FOpCodeList.Add('VPSHRDW,1,1,1,xmmreg_mz,xmmreg,xmmrm,imm8');
+  FOpCodeList.Add('VPSHRDW,1,1,1,ymmreg_mz,ymmreg,ymmrm,imm8');
+  FOpCodeList.Add('VPSHRDW,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8');
+  FOpCodeList.Add('VPSHUFBITQMB,1,1,1,kreg_m,xmmreg,xmmrm,');
+  FOpCodeList.Add('VPSHUFBITQMB,1,1,1,kreg_m,ymmreg,ymmrm,');
+  FOpCodeList.Add('VPSHUFBITQMB,1,1,1,kreg_m,zmmreg,zmmrm,');
+
+  
+  
 end;
 
 function TAVXTestGenerator.InternalMakeTestFiles(aX64, aAVX512, aSAE: boolean; aDestPath, aFileExt: String;

+ 0 - 13
tests/webtbs/tw32219.pp

@@ -1,13 +0,0 @@
-{ %cpu=x86_64 }
-{ %norun }
-program project1;
-
-{$mode objfpc}{$H+}
-{$ASMMODE intel}
-
-begin
-  asm
-    vaddsd	xmm0, xmm0, qword ptr [rax]
-    vaddsd	xmm0, xmm0, qword ptr [rax + 8]
-  end;
-end.