x86: adjust {,E}VEX.W handling outside of 64-bit mode
authorJan Beulich <jbeulich@novell.com>
Tue, 6 Nov 2018 10:42:54 +0000 (11:42 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 6 Nov 2018 10:42:54 +0000 (11:42 +0100)
Many VEX-/EVEX-encoded instructions accessing GPRs become WIG outside of
64-bit mode. The respective templates should specify neither VexWIG nor
VexW0, but instead the setting of the bit should be determined from
- REX.W in 64-bit mode,
- the setting established through -mvexwig= / -mevexwig= otherwise.
This implies that the evex-wig2 testcase needs to go away, as being
wrong altogether.

A few test additions desirable here will only happen in later patches,
as the disassembler needs adjustments first.

Once again SSE2AVX templates are left alone, for it being unclear what
the behavior there should be.

16 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/avx-wig.d
gas/testsuite/gas/i386/avx-wig.s
gas/testsuite/gas/i386/evex-wig.s
gas/testsuite/gas/i386/evex-wig1-intel.d
gas/testsuite/gas/i386/evex-wig1.d
gas/testsuite/gas/i386/evex-wig2.d [deleted file]
gas/testsuite/gas/i386/evex-wig2.s [deleted file]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/x86-64-evex-wig.s
gas/testsuite/gas/i386/x86-64-evex-wig1-intel.d
gas/testsuite/gas/i386/x86-64-evex-wig1.d
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h

index c412458234c934470b9940025e83d9ba4492221e..eb71ac3e3c405da66765c8f6097606a68854b596 100644 (file)
@@ -1,3 +1,23 @@
+2018-11-06  Jan Beulich  <jbeulich@suse.com>
+
+       * config/tc-i386.c (build_vex_prefix, build_evex_prefix):
+       Consider execution mode when .vexw is not set.
+       * testsuite/gas/i386/avx-wig.s,
+       testsuite/gas/i386/x86-64-avx-wig.s: Add BMI, BMI2, TBM, LWP,
+       vcvtsi2s*, vcvt*2si, vmovd, vpcmpestr*, vpextrd, and vpinsrd
+       cases.
+       * testsuite/gas/i386/evex-wig.s: Add vcvt*si2s*, vcvt*2*si,
+       vextractps, vpextrb, vpextrw, vpinsrb, and vpinsrw cases.
+       * testsuite/gas/i386/x86-64-evex-wig.s: Add vpextrb, vpextrw,
+       vpinsrb, and vpinsrw cases.
+       * testsuite/gas/i386/avx-wig.d, testsuite/gas/i386/evex-wig.d,
+       testsuite/gas/i386/evex-wig1-intel.d,
+       testsuite/gas/i386/x86-64-evex-wig1.d,
+       testsuite/gas/i386/x86-64-evex-wig1-intel.d: Adjust expectations.
+       * testsuite/gas/i386/evex-wig2.d,
+       testsuite/gas/i386/evex-wig2.s: Delete.
+       * testsuite/gas/i386/i386.exp: Drop deleted test.
+
 2018-11-06  Jan Beulich  <jbeulich@suse.com>
 
        * testsuite/gas/i386/evex-lig-2.s,
index 7d4ffc8dad24b0d2f8e3586c0b70f68c5e18070b..4fe9f0dda69abadb089395e0934b205b2e0582a2 100644 (file)
@@ -3453,7 +3453,7 @@ build_vex_prefix (const insn_template *t)
   else if (i.tm.opcode_modifier.vexw)
     w = i.tm.opcode_modifier.vexw == VEXW1 ? 1 : 0;
   else
-    w = (i.rex & REX_W) ? 1 : 0;
+    w = (flag_code == CODE_64BIT ? i.rex & REX_W : vexwig == vexw1) ? 1 : 0;
 
   /* Use 2-byte VEX prefix if possible.  */
   if (w == 0
@@ -3646,7 +3646,7 @@ build_evex_prefix (void)
   else if (i.tm.opcode_modifier.vexw)
     w = i.tm.opcode_modifier.vexw == VEXW1 ? 1 : 0;
   else
-    w = (i.rex & REX_W) ? 1 : 0;
+    w = (flag_code == CODE_64BIT ? i.rex & REX_W : evexwig == evexw1) ? 1 : 0;
 
   /* Encode the U bit.  */
   implied_prefix |= 0x4;
index c36dc65c64e82e865f33af04c2680cb5e9bcce6e..7063ad342c8dca8b07b9a32b818aebea6b9d375c 100644 (file)
@@ -8,6 +8,33 @@
 Disassembly of section .text:
 
 0+ <_start>:
+ +[a-f0-9]+:   c4 e2 f8 f2 00          andn   \(%eax\),%eax,%eax
+ +[a-f0-9]+:   c4 e2 f8 f7 00          bextr  %eax,\(%eax\),%eax
+ +[a-f0-9]+:   8f ea f8 10 00 00 00 00 00      bextr  \$0x0,\(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 01 08          blcfill \(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 02 30          blci   \(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 01 28          blcic  \(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 02 08          blcmsk \(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 01 18          blcs   \(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 01 10          blsfill \(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 f8 f3 18          blsi   \(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 01 30          blsic  \(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 f8 f3 10          blsmsk \(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 f8 f3 08          blsr   \(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 f8 f5 00          bzhi   %eax,\(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 12 c0          llwpcb %eax
+ +[a-f0-9]+:   8f ea f8 12 00 00 00 00 00      lwpins \$0x0,\(%eax\),%eax
+ +[a-f0-9]+:   8f ea f8 12 08 00 00 00 00      lwpval \$0x0,\(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 fb f6 00          mulx   \(%eax\),%eax,%eax
+ +[a-f0-9]+:   c4 e2 fb f5 00          pdep   \(%eax\),%eax,%eax
+ +[a-f0-9]+:   c4 e2 fa f5 00          pext   \(%eax\),%eax,%eax
+ +[a-f0-9]+:   c4 e3 fb f0 00 00       rorx   \$0x0,\(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 fa f7 00          sarx   %eax,\(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 f9 f7 00          shlx   %eax,\(%eax\),%eax
+ +[a-f0-9]+:   c4 e2 fb f7 00          shrx   %eax,\(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 12 c8          slwpcb %eax
+ +[a-f0-9]+:   8f e9 f8 01 38          t1mskc \(%eax\),%eax
+ +[a-f0-9]+:   8f e9 f8 01 20          tzmsk  \(%eax\),%eax
  +[a-f0-9]+:   c4 e1 cd 58 d4          vaddpd %ymm4,%ymm6,%ymm2
  +[a-f0-9]+:   c4 e1 cc 58 d4          vaddps %ymm4,%ymm6,%ymm2
  +[a-f0-9]+:   c4 e1 cb 58 d4          vaddsd %xmm4,%xmm6,%xmm2
@@ -47,11 +74,19 @@ Disassembly of section .text:
  +[a-f0-9]+:   c4 e1 fd 5b f4          vcvtps2dq %ymm4,%ymm6
  +[a-f0-9]+:   c4 e1 fc 5a e4          vcvtps2pd %xmm4,%ymm4
  +[a-f0-9]+:   c4 e1 cb 5a d4          vcvtsd2ss %xmm4,%xmm6,%xmm2
+ +[a-f0-9]+:   c4 e1 fa 2a c0          vcvtsi2ss %eax,%xmm0,%xmm0
+ +[a-f0-9]+:   c4 e1 fa 2a 00          vcvtsi2ssl? \(%eax\),%xmm0,%xmm0
+ +[a-f0-9]+:   c4 e1 fb 2a c0          vcvtsi2sd %eax,%xmm0,%xmm0
+ +[a-f0-9]+:   c4 e1 fb 2a 00          vcvtsi2sdl? \(%eax\),%xmm0,%xmm0
  +[a-f0-9]+:   c4 e1 ca 5a d4          vcvtss2sd %xmm4,%xmm6,%xmm2
+ +[a-f0-9]+:   c4 e1 fa 2d c0          vcvtss2si %xmm0,%eax
+ +[a-f0-9]+:   c4 e1 fb 2d c0          vcvtsd2si %xmm0,%eax
  +[a-f0-9]+:   c4 e1 fd e6 e4          vcvttpd2dq %ymm4,%xmm4
  +[a-f0-9]+:   c4 e1 f9 e6 f4          vcvttpd2dq %xmm4,%xmm6
  +[a-f0-9]+:   c4 e1 fd e6 e4          vcvttpd2dq %ymm4,%xmm4
  +[a-f0-9]+:   c4 e1 fe 5b f4          vcvttps2dq %ymm4,%ymm6
+ +[a-f0-9]+:   c4 e1 fa 2c c0          vcvttss2si %xmm0,%eax
+ +[a-f0-9]+:   c4 e1 fb 2c c0          vcvttsd2si %xmm0,%eax
  +[a-f0-9]+:   c4 e1 cd 5e d4          vdivpd %ymm4,%ymm6,%ymm2
  +[a-f0-9]+:   c4 e1 cc 5e d4          vdivps %ymm4,%ymm6,%ymm2
  +[a-f0-9]+:   c4 e1 cb 5e d4          vdivsd %xmm4,%xmm6,%xmm2
@@ -79,6 +114,10 @@ Disassembly of section .text:
  +[a-f0-9]+:   c4 e1 fc 28 f4          vmovaps %ymm4,%ymm6
  +[a-f0-9]+:   c4 e1 fd 29 e6          vmovapd %ymm4,%ymm6
  +[a-f0-9]+:   c4 e1 fc 29 e6          vmovaps %ymm4,%ymm6
+ +[a-f0-9]+:   c4 e1 f9 6e c0          vmovd  %eax,%xmm0
+ +[a-f0-9]+:   c4 e1 f9 6e 00          vmovd  \(%eax\),%xmm0
+ +[a-f0-9]+:   c4 e1 f9 7e c0          vmovd  %xmm0,%eax
+ +[a-f0-9]+:   c4 e1 f9 7e 00          vmovd  %xmm0,\(%eax\)
  +[a-f0-9]+:   c4 e1 ff 12 f4          vmovddup %ymm4,%ymm6
  +[a-f0-9]+:   c4 e1 fd 6f f4          vmovdqa %ymm4,%ymm6
  +[a-f0-9]+:   c4 e1 fe 6f f4          vmovdqu %ymm4,%ymm6
@@ -149,12 +188,16 @@ Disassembly of section .text:
  +[a-f0-9]+:   c4 e1 c9 76 d4          vpcmpeqd %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e2 c9 29 d4          vpcmpeqq %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e1 c9 75 d4          vpcmpeqw %xmm4,%xmm6,%xmm2
+ +[a-f0-9]+:   c4 e3 f9 61 c0 00       vpcmpestri \$0x0,%xmm0,%xmm0
+ +[a-f0-9]+:   c4 e3 f9 60 c0 00       vpcmpestrm \$0x0,%xmm0,%xmm0
  +[a-f0-9]+:   c4 e1 c9 64 d4          vpcmpgtb %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e1 c9 66 d4          vpcmpgtd %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e2 c9 37 d4          vpcmpgtq %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e1 c9 65 d4          vpcmpgtw %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e3 f9 63 f4 07       vpcmpistri \$0x7,%xmm4,%xmm6
  +[a-f0-9]+:   c4 e3 f9 62 f4 07       vpcmpistrm \$0x7,%xmm4,%xmm6
+ +[a-f0-9]+:   c4 e3 f9 16 c0 00       vpextrd \$0x0,%xmm0,%eax
+ +[a-f0-9]+:   c4 e3 f9 16 00 00       vpextrd \$0x0,%xmm0,\(%eax\)
  +[a-f0-9]+:   c4 e2 c9 02 d4          vphaddd %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e2 c9 03 d4          vphaddsw %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e2 c9 01 d4          vphaddw %xmm4,%xmm6,%xmm2
@@ -162,6 +205,8 @@ Disassembly of section .text:
  +[a-f0-9]+:   c4 e2 c9 06 d4          vphsubd %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e2 c9 07 d4          vphsubsw %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e2 c9 05 d4          vphsubw %xmm4,%xmm6,%xmm2
+ +[a-f0-9]+:   c4 e3 f9 22 c0 00       vpinsrd \$0x0,%eax,%xmm0,%xmm0
+ +[a-f0-9]+:   c4 e3 f9 22 00 00       vpinsrd \$0x0,\(%eax\),%xmm0,%xmm0
  +[a-f0-9]+:   c4 e2 c9 04 d4          vpmaddubsw %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e1 c9 f5 d4          vpmaddwd %xmm4,%xmm6,%xmm2
  +[a-f0-9]+:   c4 e2 c9 3c d4          vpmaxsb %xmm4,%xmm6,%xmm2
index 9af865bff01fe1810472dfcab709bd4b413ae9d1..828099f22ead8b75b13d6558320ca8e14bd8150d 100644 (file)
@@ -3,6 +3,33 @@
        .allow_index_reg
        .text
 _start:
+       andn (%eax), %eax, %eax
+       bextr %eax, (%eax), %eax
+       bextr $0, (%eax), %eax
+       blcfill (%eax), %eax
+       blci (%eax), %eax
+       blcic (%eax), %eax
+       blcmsk (%eax), %eax
+       blcs (%eax), %eax
+       blsfill (%eax), %eax
+       blsi (%eax), %eax
+       blsic (%eax), %eax
+       blsmsk (%eax), %eax
+       blsr (%eax), %eax
+       bzhi %eax, (%eax), %eax
+       llwpcb %eax
+       lwpins $0, (%eax), %eax
+       lwpval $0, (%eax), %eax
+       mulx (%eax), %eax, %eax
+       pdep (%eax), %eax, %eax
+       pext (%eax), %eax, %eax
+       rorx $0, (%eax), %eax
+       sarx %eax, (%eax), %eax
+       shlx %eax, (%eax), %eax
+       shrx %eax, (%eax), %eax
+       slwpcb %eax
+       t1mskc (%eax), %eax
+       tzmsk (%eax), %eax
        vaddpd %ymm4,%ymm6,%ymm2
        vaddps %ymm4,%ymm6,%ymm2
        vaddsd %xmm4,%xmm6,%xmm2
@@ -42,11 +69,19 @@ _start:
        vcvtps2dq %ymm4,%ymm6
        vcvtps2pd %xmm4,%ymm4
        vcvtsd2ss %xmm4,%xmm6,%xmm2
+       vcvtsi2ss %eax, %xmm0, %xmm0
+       vcvtsi2ss (%eax), %xmm0, %xmm0
+       vcvtsi2sd %eax, %xmm0, %xmm0
+       vcvtsi2sd (%eax), %xmm0, %xmm0
        vcvtss2sd %xmm4,%xmm6,%xmm2
+       vcvtss2si %xmm0, %eax
+       vcvtsd2si %xmm0, %eax
        vcvttpd2dqy %ymm4,%xmm4
        vcvttpd2dqx %xmm4,%xmm6
        vcvttpd2dqy %ymm4,%xmm4
        vcvttps2dq %ymm4,%ymm6
+       vcvttss2si %xmm0, %eax
+       vcvttsd2si %xmm0, %eax
        vdivpd %ymm4,%ymm6,%ymm2
        vdivps %ymm4,%ymm6,%ymm2
        vdivsd %xmm4,%xmm6,%xmm2
@@ -74,6 +109,10 @@ _start:
        vmovaps %ymm4,%ymm6
        {store} vmovapd %ymm4,%ymm6
        {store} vmovaps %ymm4,%ymm6
+       vmovd %eax, %xmm0
+       vmovd (%eax), %xmm0
+       vmovd %xmm0, %eax
+       vmovd %xmm0, (%eax)
        vmovddup %ymm4,%ymm6
        vmovdqa %ymm4,%ymm6
        vmovdqu %ymm4,%ymm6
@@ -144,12 +183,16 @@ _start:
        vpcmpeqd %xmm4,%xmm6,%xmm2
        vpcmpeqq %xmm4,%xmm6,%xmm2
        vpcmpeqw %xmm4,%xmm6,%xmm2
+       vpcmpestri $0, %xmm0, %xmm0
+       vpcmpestrm $0, %xmm0, %xmm0
        vpcmpgtb %xmm4,%xmm6,%xmm2
        vpcmpgtd %xmm4,%xmm6,%xmm2
        vpcmpgtq %xmm4,%xmm6,%xmm2
        vpcmpgtw %xmm4,%xmm6,%xmm2
        vpcmpistri $7,%xmm4,%xmm6
        vpcmpistrm $7,%xmm4,%xmm6
+       vpextrd $0, %xmm0, %eax
+       vpextrd $0, %xmm0, (%eax)
        vphaddd %xmm4,%xmm6,%xmm2
        vphaddsw %xmm4,%xmm6,%xmm2
        vphaddw %xmm4,%xmm6,%xmm2
@@ -157,6 +200,8 @@ _start:
        vphsubd %xmm4,%xmm6,%xmm2
        vphsubsw %xmm4,%xmm6,%xmm2
        vphsubw %xmm4,%xmm6,%xmm2
+       vpinsrd $0, %eax, %xmm0, %xmm0
+       vpinsrd $0, (%eax), %xmm0, %xmm0
        vpmaddubsw %xmm4,%xmm6,%xmm2
        vpmaddwd %xmm4,%xmm6,%xmm2
        vpmaxsb %xmm4,%xmm6,%xmm2
index 9f06a7af4fb82d4873094e0130444d161b9595f9..42369f5187dc4c04510dc76f663a3abdb8e7c618 100644 (file)
@@ -4,6 +4,50 @@
        .text
 _start:
 
+       {evex} vcvtsi2ss %eax, %xmm0, %xmm0
+       {evex} vcvtsi2ss 4(%eax), %xmm0, %xmm0
+
+       {evex} vcvtsi2sd %eax, %xmm0, %xmm0
+       {evex} vcvtsi2sd 4(%eax), %xmm0, %xmm0
+
+       {evex} vcvtss2si %xmm0, %eax
+
+       {evex} vcvtsd2si %xmm0, %eax
+
+       {evex} vcvttss2si %xmm0, %eax
+
+       {evex} vcvttsd2si %xmm0, %eax
+
+       vcvtusi2ss %eax, %xmm0, %xmm0
+       vcvtusi2ss 4(%eax), %xmm0, %xmm0
+
+       vcvtusi2sd %eax, %xmm0, %xmm0
+       vcvtusi2sd 4(%eax), %xmm0, %xmm0
+
+       vcvtss2usi %xmm0, %eax
+
+       vcvtsd2usi %xmm0, %eax
+
+       vcvttss2usi %xmm0, %eax
+
+       vcvttsd2usi %xmm0, %eax
+
+       {evex} vextractps $0, %xmm0, %eax
+       {evex} vextractps $0, %xmm0, 4(%eax)
+
+       {evex} vpextrb $0, %xmm0, %eax
+       {evex} vpextrb $0, %xmm0, 1(%eax)
+
+       {evex} vpextrw $0, %xmm0, %eax
+       {evex} {store} vpextrw $0, %xmm0, %eax
+       {evex} vpextrw $0, %xmm0, 2(%eax)
+
+       {evex} vpinsrb $0, %eax, %xmm0, %xmm0
+       {evex} vpinsrb $0, 1(%eax), %xmm0, %xmm0
+
+       {evex} vpinsrw $0, %eax, %xmm0, %xmm0
+       {evex} vpinsrw $0, 2(%eax), %xmm0, %xmm0
+
        vpmovsxbd       %xmm5, %zmm6{%k7}        # AVX512
        vpmovsxbd       %xmm5, %zmm6{%k7}{z}     # AVX512
        vpmovsxbd       (%ecx), %zmm6{%k7}       # AVX512
index 65942ea440e1d0b03f30962756eff80d0445a7b3..12cde27a02b975c2d7c0c70a51055fc359921f77 100644 (file)
@@ -9,6 +9,33 @@
 Disassembly of section .text:
 
 0+ <_start>:
+[      ]*[a-f0-9]+:    62 f1 fe 08 2a c0       vcvtsi2ss xmm0,xmm0,eax
+[      ]*[a-f0-9]+:    62 f1 fe 08 2a 40 01    vcvtsi2ss xmm0,xmm0,DWORD PTR \[eax\+0x4\]
+[      ]*[a-f0-9]+:    62 f1 ff 08 2a c0       vcvtsi2sd xmm0,xmm0,eax
+[      ]*[a-f0-9]+:    62 f1 ff 08 2a 40 01    vcvtsi2sd xmm0,xmm0,DWORD PTR \[eax\+0x4\]
+[      ]*[a-f0-9]+:    62 f1 fe 08 2d c0       vcvtss2si eax,xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 2d c0       vcvtsd2si eax,xmm0
+[      ]*[a-f0-9]+:    62 f1 fe 08 2c c0       vcvttss2si eax,xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 2c c0       vcvttsd2si eax,xmm0
+[      ]*[a-f0-9]+:    62 f1 fe 08 7b c0       vcvtusi2ss xmm0,xmm0,eax
+[      ]*[a-f0-9]+:    62 f1 fe 08 7b 40 01    vcvtusi2ss xmm0,xmm0,DWORD PTR \[eax\+0x4\]
+[      ]*[a-f0-9]+:    62 f1 ff 08 7b c0       vcvtusi2sd xmm0,xmm0,eax
+[      ]*[a-f0-9]+:    62 f1 ff 08 7b 40 01    vcvtusi2sd xmm0,xmm0,DWORD PTR \[eax\+0x4\]
+[      ]*[a-f0-9]+:    62 f1 fe 08 79 c0       vcvtss2usi eax,xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 79 c0       vcvtsd2usi eax,xmm0
+[      ]*[a-f0-9]+:    62 f1 fe 08 78 c0       vcvttss2usi eax,xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 78 c0       vcvttsd2usi eax,xmm0
+[      ]*[a-f0-9]+:    62 f3 fd 08 17 c0 00    vextractps eax,xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 17 40 01 00         vextractps DWORD PTR \[eax\+0x4\],xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 c0 00    vpextrb eax,xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 40 01 00         vpextrb BYTE PTR \[eax\+0x1\],xmm0,0x0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c5 c0 00    vpextrw eax,xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 c0 00    vpextrw eax,xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 40 01 00         vpextrw WORD PTR \[eax\+0x2\],xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 c0 00    vpinsrb xmm0,xmm0,eax,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 40 01 00         vpinsrb xmm0,xmm0,BYTE PTR \[eax\+0x1\],0x0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 c0 00    vpinsrw xmm0,xmm0,eax,0x0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 40 01 00         vpinsrw xmm0,xmm0,WORD PTR \[eax\+0x2\],0x0
 [      ]*[a-f0-9]+:    62 f2 fd 4f 21 f5       vpmovsxbd zmm6\{k7\},xmm5
 [      ]*[a-f0-9]+:    62 f2 fd cf 21 f5       vpmovsxbd zmm6\{k7\}\{z\},xmm5
 [      ]*[a-f0-9]+:    62 f2 fd 4f 21 31       vpmovsxbd zmm6\{k7\},XMMWORD PTR \[ecx\]
index b55754e64ab7cfcf018ad73f38c315d29413bf78..beb269e9093898066559ba90766979069076bbb5 100644 (file)
@@ -9,6 +9,33 @@
 Disassembly of section .text:
 
 0+ <_start>:
+[      ]*[a-f0-9]+:    62 f1 fe 08 2a c0       vcvtsi2ss %eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fe 08 2a 40 01    vcvtsi2ssl 0x4\(%eax\),%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 2a c0       vcvtsi2sd %eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 2a 40 01    vcvtsi2sdl 0x4\(%eax\),%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fe 08 2d c0       vcvtss2si %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f1 ff 08 2d c0       vcvtsd2si %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f1 fe 08 2c c0       vcvttss2si %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f1 ff 08 2c c0       vcvttsd2si %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f1 fe 08 7b c0       vcvtusi2ss %eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fe 08 7b 40 01    vcvtusi2ssl 0x4\(%eax\),%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 7b c0       vcvtusi2sd %eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 ff 08 7b 40 01    vcvtusi2sdl 0x4\(%eax\),%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fe 08 79 c0       vcvtss2usi %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f1 ff 08 79 c0       vcvtsd2usi %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f1 fe 08 78 c0       vcvttss2usi %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f1 ff 08 78 c0       vcvttsd2usi %xmm0,%eax
+[      ]*[a-f0-9]+:    62 f3 fd 08 17 c0 00    vextractps \$0x0,%xmm0,%eax
+[      ]*[a-f0-9]+:    62 f3 fd 08 17 40 01 00         vextractps \$0x0,%xmm0,0x4\(%eax\)
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 c0 00    vpextrb \$0x0,%xmm0,%eax
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 40 01 00         vpextrb \$0x0,%xmm0,0x1\(%eax\)
+[      ]*[a-f0-9]+:    62 f1 fd 08 c5 c0 00    vpextrw \$0x0,%xmm0,%eax
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 c0 00    vpextrw \$0x0,%xmm0,%eax
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 40 01 00         vpextrw \$0x0,%xmm0,0x2\(%eax\)
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 c0 00    vpinsrb \$0x0,%eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 40 01 00         vpinsrb \$0x0,0x1\(%eax\),%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 c0 00    vpinsrw \$0x0,%eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 40 01 00         vpinsrw \$0x0,0x2\(%eax\),%xmm0,%xmm0
 [      ]*[a-f0-9]+:    62 f2 fd 4f 21 f5       vpmovsxbd %xmm5,%zmm6\{%k7\}
 [      ]*[a-f0-9]+:    62 f2 fd cf 21 f5       vpmovsxbd %xmm5,%zmm6\{%k7\}\{z\}
 [      ]*[a-f0-9]+:    62 f2 fd 4f 21 31       vpmovsxbd \(%ecx\),%zmm6\{%k7\}
diff --git a/gas/testsuite/gas/i386/evex-wig2.d b/gas/testsuite/gas/i386/evex-wig2.d
deleted file mode 100644 (file)
index 753aad4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#as: -mevexwig=1
-#objdump: -dw
-#name: i386 non-WIG EVEX insns with -mevexwig=1
-
-.*: +file format .*
-
-
-Disassembly of section .text:
-
-0+ <_start>:
- +[a-f0-9]+:   62 f1 56 38 2a f0       vcvtsi2ss %eax,\{rd-sae\},%xmm5,%xmm6
- +[a-f0-9]+:   62 f1 56 08 2a f0       vcvtsi2ss %eax,%xmm5,%xmm6
- +[a-f0-9]+:   62 f1 57 08 2a f0       vcvtsi2sd %eax,%xmm5,%xmm6
- +[a-f0-9]+:   62 f1 56 38 7b f0       vcvtusi2ss %eax,\{rd-sae\},%xmm5,%xmm6
- +[a-f0-9]+:   62 f1 56 08 7b f0       vcvtusi2ss %eax,%xmm5,%xmm6
- +[a-f0-9]+:   62 f1 57 08 7b f0       vcvtusi2sd %eax,%xmm5,%xmm6
-#pass
diff --git a/gas/testsuite/gas/i386/evex-wig2.s b/gas/testsuite/gas/i386/evex-wig2.s
deleted file mode 100644 (file)
index df775df..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# Check non-WIG EVEX instructions with -mevexwig=1
-
-       .allow_index_reg
-       .text
-_start:
-       vcvtsi2ss %eax, {rd-sae}, %xmm5, %xmm6
-       {evex} vcvtsi2ss %eax, %xmm5, %xmm6
-       {evex}  vcvtsi2sd %eax, %xmm5, %xmm6
-       vcvtusi2ss %eax, {rd-sae}, %xmm5, %xmm6
-       {evex} vcvtusi2ss %eax, %xmm5, %xmm6
-       {evex}  vcvtusi2sd %eax, %xmm5, %xmm6
index 60439eb815cae8d747e0a52f70886c7788360308..e3eeaf87ea5588040fc3e0b72fcd2eb51c64c361 100644 (file)
@@ -238,7 +238,6 @@ if [expr ([istarget "i*86-*-*"] ||  [istarget "x86_64-*-*"]) && [gas_32_check]]
     run_dump_test "evex-lig-2"
     run_dump_test "evex-wig1"
     run_dump_test "evex-wig1-intel"
-    run_dump_test "evex-wig2"
     run_dump_test "sse2avx"
     run_list_test "inval-avx" "-al"
     run_list_test "inval-avx512f" "-al"
index e9a2016cb741f882565a4b44de80f76ccab49d71..8dee163adea2b43302ca6053b7d89cf1c26c3b6b 100644 (file)
@@ -14,6 +14,19 @@ _start:
        vextractps      $123, %xmm29, -512(%rdx)         # AVX512 Disp8
        vextractps      $123, %xmm29, -516(%rdx)         # AVX512
 
+       {evex} vpextrb $0, %xmm0, %eax
+       {evex} vpextrb $0, %xmm0, (%rax)
+
+       {evex} vpextrw $0, %xmm0, %eax
+       {evex} {store} vpextrw $0, %xmm0, %eax
+       {evex} vpextrw $0, %xmm0, (%rax)
+
+       {evex} vpinsrb $0, %eax, %xmm0, %xmm0
+       {evex} vpinsrb $0, (%rax), %xmm0, %xmm0
+
+       {evex} vpinsrw $0, %eax, %xmm0, %xmm0
+       {evex} vpinsrw $0, (%rax), %xmm0, %xmm0
+
        vpmovsxbd       %xmm29, %zmm30{%k7}      # AVX512
        vpmovsxbd       %xmm29, %zmm30{%k7}{z}   # AVX512
        vpmovsxbd       (%rcx), %zmm30{%k7}      # AVX512
index eb6bc7a6598a1a967b8e4e57768c9430d19879fb..240148aaae267c69b2a438ca4536a140817090d5 100644 (file)
@@ -18,6 +18,15 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    62 63 fd 08 17 aa 00 02 00 00 7b        vextractps DWORD PTR \[rdx\+0x200\],xmm29,0x7b
 [      ]*[a-f0-9]+:    62 63 fd 08 17 6a 80 7b         vextractps DWORD PTR \[rdx-0x200\],xmm29,0x7b
 [      ]*[a-f0-9]+:    62 63 fd 08 17 aa fc fd ff ff 7b        vextractps DWORD PTR \[rdx-0x204\],xmm29,0x7b
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 c0 00    vpextrb rax,xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 00 00    vpextrb BYTE PTR \[rax\],xmm0,0x0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c5 c0 00    vpextrw rax,xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 c0 00    vpextrw rax,xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 00 00    vpextrw WORD PTR \[rax\],xmm0,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 c0 00    vpinsrb xmm0,xmm0,eax,0x0
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 00 00    vpinsrb xmm0,xmm0,BYTE PTR \[rax\],0x0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 c0 00    vpinsrw xmm0,xmm0,eax,0x0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 00 00    vpinsrw xmm0,xmm0,WORD PTR \[rax\],0x0
 [      ]*[a-f0-9]+:    62 02 fd 4f 21 f5       vpmovsxbd zmm30\{k7\},xmm29
 [      ]*[a-f0-9]+:    62 02 fd cf 21 f5       vpmovsxbd zmm30\{k7\}\{z\},xmm29
 [      ]*[a-f0-9]+:    62 62 fd 4f 21 31       vpmovsxbd zmm30\{k7\},XMMWORD PTR \[rcx\]
index 75272f53794ded89b416e5d5fe0cc42943da2d5a..56a937cad3d727dc351bf5ef9da2c07007de66bb 100644 (file)
@@ -18,6 +18,15 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    62 63 fd 08 17 aa 00 02 00 00 7b        vextractps \$0x7b,%xmm29,0x200\(%rdx\)
 [      ]*[a-f0-9]+:    62 63 fd 08 17 6a 80 7b         vextractps \$0x7b,%xmm29,-0x200\(%rdx\)
 [      ]*[a-f0-9]+:    62 63 fd 08 17 aa fc fd ff ff 7b        vextractps \$0x7b,%xmm29,-0x204\(%rdx\)
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 c0 00    vpextrb \$0x0,%xmm0,%rax
+[      ]*[a-f0-9]+:    62 f3 fd 08 14 00 00    vpextrb \$0x0,%xmm0,\(%rax\)
+[      ]*[a-f0-9]+:    62 f1 fd 08 c5 c0 00    vpextrw \$0x0,%xmm0,%rax
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 c0 00    vpextrw \$0x0,%xmm0,%rax
+[      ]*[a-f0-9]+:    62 f3 fd 08 15 00 00    vpextrw \$0x0,%xmm0,\(%rax\)
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 c0 00    vpinsrb \$0x0,%eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f3 fd 08 20 00 00    vpinsrb \$0x0,\(%rax\),%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 c0 00    vpinsrw \$0x0,%eax,%xmm0,%xmm0
+[      ]*[a-f0-9]+:    62 f1 fd 08 c4 00 00    vpinsrw \$0x0,\(%rax\),%xmm0,%xmm0
 [      ]*[a-f0-9]+:    62 02 fd 4f 21 f5       vpmovsxbd %xmm29,%zmm30\{%k7\}
 [      ]*[a-f0-9]+:    62 02 fd cf 21 f5       vpmovsxbd %xmm29,%zmm30\{%k7\}\{z\}
 [      ]*[a-f0-9]+:    62 62 fd 4f 21 31       vpmovsxbd \(%rcx\),%zmm30\{%k7\}
index 444ab05d1da67c629d0c67029ee55d64bc189b38..8b88018bd8f59473b72f0df9fab54d242a49410f 100644 (file)
@@ -1,3 +1,10 @@
+2018-11-06  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-opc.tbl (vcvtsi2sd, vcvtsi2ss, vmovd, vpcmpestri,
+       vpcmpestrm, vpextrd, vpinsrd, vpbroadcastd, vcvtusi2sd,
+       vcvtusi2ss, kmovd): Drop VexW=1.
+       * i386-tbl.h: Re-generate.
+
 2018-11-06  Jan Beulich  <jbeulich@suse.com>
 
        * i386-opc.tbl (Vex128, Vex256, VexLIG, EVex128, EVex256,
index 55304c23518d092649b6593707aef129a9c0aa69..df62291538e3a2f60b99c561f87e11ac2f951ae0 100644 (file)
@@ -1977,9 +1977,9 @@ vcvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexWIG|IgnoreSize|No_
 vcvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex, RegYMM }
 vcvtsd2si, 2, 0xf22d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
 vcvtsd2ss, 3, 0xf25a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexWIG|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
-vcvtsi2sd, 3, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2sd, 3, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2sd, 3, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
-vcvtsi2ss, 3, 0xf32a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2ss, 3, 0xf32a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2ss, 3, 0xf32a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtss2sd, 3, 0xf35a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexWIG|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vcvtss2si, 2, 0xf32d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
@@ -2026,7 +2026,7 @@ vmovaps, 2, 0x28, None, 1, CpuAVX, D|Modrm|Vex|VexOpcode=0|VexWIG|CheckRegSize|N
 // by Intel AVX spec).  To avoid extra template in gcc x86 backend and
 // support assembler for AMD64, we accept 64bit operand on vmovd so
 // that we can use one template for both SSE and AVX instructions.
-vmovd, 2, 0x666e, None, 1, CpuAVX, D|Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM }
+vmovd, 2, 0x666e, None, 1, CpuAVX, D|Modrm|Vex=1|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM }
 vmovd, 2, 0x666e, None, 1, CpuAVX|Cpu64, D|Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|RegMem, RegXMM }
 vmovddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexWIG|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
 vmovddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegYMM, RegYMM }
@@ -2092,9 +2092,9 @@ vpcmpeqb, 3, 0x6674, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexWIG|No_
 vpcmpeqd, 3, 0x6676, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpcmpeqq, 3, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpcmpeqw, 3, 0x6675, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
-vpcmpestri, 3, 0x6661, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
+vpcmpestri, 3, 0x6661, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
 vpcmpestri, 3, 0x6661, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
-vpcmpestrm, 3, 0x6660, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
+vpcmpestrm, 3, 0x6660, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
 vpcmpestrm, 3, 0x6660, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 vpcmpgtb, 3, 0x6664, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpcmpgtd, 3, 0x6666, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
@@ -2109,7 +2109,7 @@ vpermilps, 3, 0x660c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|Ch
 vpermilps, 3, 0x6604, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
 vpextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|RegMem }
 vpextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Byte|Unspecified|BaseIndex }
-vpextrd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+vpextrd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
 vpextrq, 3, 0x6616, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|VexW=2|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex }
 vpextrw, 3, 0x66c5, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64 }
 vpextrw, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|RegMem }
@@ -2123,7 +2123,7 @@ vphsubsw, 3, 0x6607, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexWIG|No_
 vphsubw, 3, 0x6605, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpinsrb, 4, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
 vpinsrb, 4, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Byte|Unspecified|BaseIndex, RegXMM, RegXMM }
-vpinsrd, 4, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpinsrd, 4, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vpinsrq, 4, 0x6622, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg64|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vpinsrw, 4, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
 vpinsrw, 4, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Word|Unspecified|BaseIndex, RegXMM, RegXMM }
@@ -2975,7 +2975,7 @@ vbroadcastss, 2, 0x6618, None, 1, CpuAVX512F, Modrm|Masking=3|VexOpcode=1|VexW=1
 vbroadcastsd, 2, 0x6619, None, 1, CpuAVX512F, Modrm|Masking=3|VexOpcode=1|VexW=2|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM|RegZMM }
 
 vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F, Modrm|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
-vpbroadcastd, 2, 0x667C, None, 1, CpuAVX512F, Modrm|Masking=3|VexOpcode=1|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, RegXMM|RegYMM|RegZMM }
+vpbroadcastd, 2, 0x667C, None, 1, CpuAVX512F, Modrm|Masking=3|VexOpcode=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, RegXMM|RegYMM|RegZMM }
 
 vcmppd, 4, 0x66C2, None, 1, CpuAVX512F, Modrm|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|Broadcast|Disp8ShiftVL|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|RegYMM|RegZMM|Qword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegMask }
 vcmppd, 5, 0x66C2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM, RegMask }
@@ -3419,20 +3419,20 @@ vcvtsd2usi, 3, 0xF279, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|No_bSuf|No_
 vcvtsd2ss, 3, 0xF25A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsd2ss, 4, 0xF25A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vcvtsi2sd, 3, 0xF22A, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2sd, 3, 0xF22A, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2sd, 3, 0xF22A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8ShiftVL|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2sd, 4, 0xF22A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg64, Imm8, RegXMM, RegXMM }
 vcvtsi2sd, 4, 0xF22A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg64, RegXMM, RegXMM }
-vcvtusi2sd, 3, 0xF27B, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtusi2sd, 3, 0xF27B, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtusi2sd, 3, 0xF27B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8ShiftVL|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtusi2sd, 4, 0xF27B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg64, Imm8, RegXMM, RegXMM }
 vcvtusi2sd, 4, 0xF27B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg64, RegXMM, RegXMM }
 
-vcvtsi2ss, 3, 0xF32A, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2ss, 3, 0xF32A, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2ss, 3, 0xF32A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8ShiftVL|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2ss, 4, 0xF32A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg32|Reg64, Imm8, RegXMM, RegXMM }
 vcvtsi2ss, 4, 0xF32A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
-vcvtusi2ss, 3, 0xF37B, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtusi2ss, 3, 0xF37B, None, 1, CpuAVX512F|CpuNo64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtusi2ss, 3, 0xF37B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8ShiftVL|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtusi2ss, 4, 0xF37B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg32|Reg64, Imm8, RegXMM, RegXMM }
 vcvtusi2ss, 4, 0xF37B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
@@ -3705,7 +3705,7 @@ vmovaps, 2, 0x28, None, 1, CpuAVX512F, D|Modrm|MaskingMorZ|VexOpcode=0|VexW=1|Di
 vmovntps, 2, 0x2B, None, 1, CpuAVX512F, Modrm|VexOpcode=0|VexW=1|Disp8ShiftVL|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM|RegZMM, XMMword|YMMword|ZMMword|Unspecified|BaseIndex }
 vmovups, 2, 0x10, None, 1, CpuAVX512F, D|Modrm|MaskingMorZ|VexOpcode=0|VexW=1|Disp8ShiftVL|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
 
-vmovd, 2, 0x666E, None, 1, CpuAVX512F, D|Modrm|EVex=2|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM }
+vmovd, 2, 0x666E, None, 1, CpuAVX512F, D|Modrm|EVex=2|VexOpcode=0|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM }
 
 vmovddup, 2, 0xF212, None, 1, CpuAVX512F, Modrm|Masking=3|VexOpcode=0|VexW=2|Disp8ShiftVL|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|RegZMM|Unspecified|BaseIndex, RegYMM|RegZMM }
 
@@ -4160,7 +4160,7 @@ kandd, 3, 0x6641, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2
 kandnd, 3, 0x6642, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Optimize, { RegMask, RegMask, RegMask }
 kmovd, 2, 0x6690, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Dword|Unspecified|BaseIndex, RegMask }
 kmovd, 2, 0x6691, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Dword|Unspecified|BaseIndex }
-kmovd, 2, 0xF292, None, 1, CpuAVX512BW, D|Modrm|Vex=1|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, RegMask }
+kmovd, 2, 0xF292, None, 1, CpuAVX512BW, D|Modrm|Vex=1|VexOpcode=0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, RegMask }
 knotd, 2, 0x6644, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask }
 kord, 3, 0x6645, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kortestd, 2, 0x6698, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask }
@@ -4444,8 +4444,8 @@ vinsertf32x8, 4, 0x661A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=
 vinserti32x8, 4, 0x663A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Unspecified|BaseIndex, RegZMM, RegZMM }
 
 vfpclassss, 3, 0x6667, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegMask }
-vpextrd, 3, 0x6616, None, 1, CpuAVX512DQ, Modrm|EVex128|VexOpcode=2|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
-vpinsrd, 4, 0x6622, None, 1, CpuAVX512DQ, Modrm|EVex128|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpextrd, 3, 0x6616, None, 1, CpuAVX512DQ, Modrm|EVex128|VexOpcode=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+vpinsrd, 4, 0x6622, None, 1, CpuAVX512DQ, Modrm|EVex128|VexOpcode=2|VexVVVV=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 
 vfpclasssd, 3, 0x6667, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=2|VexOpcode=2|VexW=2|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegMask }
 vpextrq, 3, 0x6616, None, 1, CpuAVX512DQ, Modrm|EVex128|VexOpcode=2|VexW=2|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex }
index c22a58c9aee9b317e47226420081f33f3842cb4e..ecb53e35acf812e8ac4a72206738e6ceea8f5519 100644 (file)
@@ -32082,7 +32082,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1,
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -32120,7 +32120,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -32202,7 +32202,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1,
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -32240,7 +32240,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -33903,7 +33903,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -33935,7 +33935,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -36779,7 +36779,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },
@@ -36817,7 +36817,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },
@@ -37371,7 +37371,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },
@@ -37390,7 +37390,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },
@@ -37893,7 +37893,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },
@@ -37915,7 +37915,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },
@@ -44060,7 +44060,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },
@@ -58649,7 +58649,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -58731,7 +58731,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-      1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0 } },
@@ -63088,7 +63088,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0 } },