]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
x86/APX: Don't promote AVX/AVX2 instructions out of APX spec
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 15 Sep 2024 23:11:39 +0000 (07:11 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 18 Sep 2024 02:11:02 +0000 (10:11 +0800)
V{BROADCAST,EXTRACT,INSERT}{F,I}128 and VROUND{P,S}{S,D} aren't promoted
to support EGPR in APX spec.  Don't promote them out of APX spec.  This
commit effectively reverted:

ec3babb8c10 x86/APX: V{BROADCAST,EXTRACT,INSERT}{F,I}128 can also be expressed
5a635f1f59a x86/APX: VROUND{P,S}{S,D} encodings require AVX512{F,VL}
eea4357967b x86/APX: VROUND{P,S}{S,D} can generally be encoded

gas/

PR gas/32171
* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s: Add
V{BROADCAST,EXTRACT,INSERT}{F,I}128 tests with EGPR.
* testsuite/gas/i386/x86-64-apx-evex-promoted.s: Remove
V{BROADCAST,EXTRACT,INSERT}{F,I}128 and VROUND{P,S}{S,D} tests
with EGPR.
* testsuite/gas/i386/x86-64-apx-egpr-inval.l: Updated.
* testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l: Likewise.
* testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d: Likewise.
* testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d: Likewise.
* testsuite/gas/i386/x86-64-apx-evex-promoted.d: Likewise.

opcodes/

PR gas/32171
* i386-opc.tbl: Remove V{BROADCAST,EXTRACT,INSERT}{F,I}128 and
VROUND{P,S}{S,D} entries with EGPR.
* i386-tbl.h: Regenerated.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
gas/testsuite/gas/i386/x86-64-apx-egpr-inval.l
gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.l
gas/testsuite/gas/i386/x86-64-apx-egpr-promote-inval.s
gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
opcodes/i386-opc.tbl
opcodes/i386-tbl.h

index b018b3f7795e5aa87df66c95fd9e271f7089fc0a..2525565284e4049da1f8e4b11c5f812439217c46 100644 (file)
 .*:195: Error: no EVEX encoding for `vrcpps'
 .*:196: Error: no EVEX encoding for `vrcpps'
 .*:197: Error: no EVEX encoding for `vrcpss'
-.*:198: Error: .* 4 bits for `vroundpd'
-.*:199: Error: .* 4 bits for `vroundps'
-.*:200: Error: .* 4 bits for `vroundsd'
-.*:201: Error: .* 4 bits for `vroundss'
+.*:198: Error: no EVEX encoding for `vroundpd'
+.*:199: Error: no EVEX encoding for `vroundps'
+.*:200: Error: no EVEX encoding for `vroundsd'
+.*:201: Error: no EVEX encoding for `vroundss'
 .*:202: Error: no EVEX encoding for `vrsqrtps'
 .*:203: Error: no EVEX encoding for `vrsqrtps'
 .*:204: Error: no EVEX encoding for `vrsqrtss'
index 6f06df919056aaa937ad880fcb55321e50db48b0..9c0b81860e9b1535ccc86c40c1d3d95ae3578565 100644 (file)
 .*:37: Error: .*`kmovb'.*
 .*:38: Error: .*`ldtilecfg'.*
 .*:39: Error: .*`cmpexadd'.*
+.*:42: Error: no EVEX encoding for `vbroadcastf128'
+.*:43: Error: no EVEX encoding for `vbroadcasti128'
+.*:44: Error: no EVEX encoding for `vextractf128'
+.*:45: Error: no EVEX encoding for `vextracti128'
+.*:46: Error: no EVEX encoding for `vinsertf128'
+.*:47: Error: no EVEX encoding for `vinserti128'
 GAS LISTING .*
 #...
 [      ]*1[    ]+\# Check illegal 64bit APX EVEX promoted instructions
index 5e4e08fa2fdedefeb1e6a7eae73e150dd7b475c9..d23dbd3f2caa24a65d9b7d723afc1b2605c808af 100644 (file)
        {evex} kmovb %k1, %r8d
        {evex} ldtilecfg (%r8)
        {evex} cmpexadd %rax, %rcx, (%r8)
+
+       .arch default
+       vbroadcastf128  (%r16),%ymm3
+       vbroadcasti128  (%r16),%ymm3
+       vextractf128    $1,%ymm3,(%r16)
+       vextracti128    $1,%ymm3,(%r16)
+       vinsertf128     $1,(%r16),%ymm3,%ymm8
+       vinserti128     $1,(%r16),%ymm3,%ymm8
index 76664548d8081ac3137755cc2fc26da03782dc87..54195179172bd17df0b478975e05513330f5d660 100644 (file)
@@ -138,16 +138,6 @@ Disassembly of section \.text:
 [       ]*[a-f0-9]+:[   ]*62 da 7f 08 4b b4 87 23 01 00 00[     ]+tileloadd tmm6,\[r31\+rax\*4\+0x123\]
 [       ]*[a-f0-9]+:[   ]*62 da 7d 08 4b b4 87 23 01 00 00[     ]+tileloaddt1 tmm6,\[r31\+rax\*4\+0x123\]
 [       ]*[a-f0-9]+:[   ]*62 da 7e 08 4b b4 87 23 01 00 00[     ]+tilestored[   ]+\[r31\+rax\*4\+0x123\],tmm6
-[       ]*[a-f0-9]+:[   ]*62 fa 7d 28 1a 18[    ]+vbroadcastf32x4 ymm3,XMMWORD PTR \[r16\]
-[       ]*[a-f0-9]+:[   ]*62 fa 7d 28 5a 18[    ]+vbroadcasti32x4 ymm3,XMMWORD PTR \[r16\]
-[       ]*[a-f0-9]+:[   ]*62 fb 7d 28 19 18 01[         ]+vextractf32x4 XMMWORD PTR \[r16\],ymm3,(0x)?1
-[       ]*[a-f0-9]+:[   ]*62 fb 7d 28 39 18 01[         ]+vextracti32x4 XMMWORD PTR \[r16\],ymm3,(0x)?1
-[       ]*[a-f0-9]+:[   ]*62 7b 65 28 18 00 01[         ]+vinsertf32x4 ymm8,ymm3,XMMWORD PTR \[r16\],(0x)?1
-[       ]*[a-f0-9]+:[   ]*62 7b 65 28 38 00 01[         ]+vinserti32x4 ymm8,ymm3,XMMWORD PTR \[r16\],(0x)?1
-[       ]*[a-f0-9]+:[   ]*62 db fd 08 09 30 01[         ]+vrndscalepd xmm6,XMMWORD PTR \[r24\],(0x)?1
-[       ]*[a-f0-9]+:[   ]*62 db 7d 08 08 30 02[         ]+vrndscaleps xmm6,XMMWORD PTR \[r24\],(0x)?2
-[       ]*[a-f0-9]+:[   ]*62 db cd 08 0b 18 03[         ]+vrndscalesd xmm3,xmm6,QWORD PTR \[r24\],(0x)?3
-[       ]*[a-f0-9]+:[   ]*62 db 4d 08 0a 18 04[         ]+vrndscaless xmm3,xmm6,DWORD PTR \[r24\],(0x)?4
 [       ]*[a-f0-9]+:[   ]*62 4c 7c 08 66 8c 87 23 01 00 00[     ]+wrssd[        ]+\[r31\+rax\*4\+0x123\],r25d
 [       ]*[a-f0-9]+:[   ]*62 4c fc 08 66 bc 87 23 01 00 00[     ]+wrssq[        ]+\[r31\+rax\*4\+0x123\],r31
 [       ]*[a-f0-9]+:[   ]*62 4c 7d 08 65 8c 87 23 01 00 00[     ]+wrussd[       ]+\[r31\+rax\*4\+0x123\],r25d
index e800205c0e39d6939b6679071fa77e5260fed856..bcdc43ec2a8288e9f6018b032184190f6a270dad 100644 (file)
@@ -138,16 +138,6 @@ Disassembly of section \.text:
 [       ]*[a-f0-9]+:[   ]*62 da 7f 08 4b b4 87 23 01 00 00[     ]+tileloadd[    ]+0x123\(%r31,%rax,4\),%tmm6
 [       ]*[a-f0-9]+:[   ]*62 da 7d 08 4b b4 87 23 01 00 00[     ]+tileloaddt1[  ]+0x123\(%r31,%rax,4\),%tmm6
 [       ]*[a-f0-9]+:[   ]*62 da 7e 08 4b b4 87 23 01 00 00[     ]+tilestored[   ]+%tmm6,0x123\(%r31,%rax,4\)
-[       ]*[a-f0-9]+:[   ]*62 fa 7d 28 1a 18[    ]+vbroadcastf32x4 \(%r16\),%ymm3
-[       ]*[a-f0-9]+:[   ]*62 fa 7d 28 5a 18[    ]+vbroadcasti32x4 \(%r16\),%ymm3
-[       ]*[a-f0-9]+:[   ]*62 fb 7d 28 19 18 01[         ]+vextractf32x4 \$(0x)?1,%ymm3,\(%r16\)
-[       ]*[a-f0-9]+:[   ]*62 fb 7d 28 39 18 01[         ]+vextracti32x4 \$(0x)?1,%ymm3,\(%r16\)
-[       ]*[a-f0-9]+:[   ]*62 7b 65 28 18 00 01[         ]+vinsertf32x4 \$(0x)?1,\(%r16\),%ymm3,%ymm8
-[       ]*[a-f0-9]+:[   ]*62 7b 65 28 38 00 01[         ]+vinserti32x4 \$(0x)?1,\(%r16\),%ymm3,%ymm8
-[       ]*[a-f0-9]+:[   ]*62 db fd 08 09 30 01[         ]+vrndscalepd \$0x1,\(%r24\),%xmm6
-[       ]*[a-f0-9]+:[   ]*62 db 7d 08 08 30 02[         ]+vrndscaleps \$0x2,\(%r24\),%xmm6
-[       ]*[a-f0-9]+:[   ]*62 db cd 08 0b 18 03[         ]+vrndscalesd \$0x3,\(%r24\),%xmm6,%xmm3
-[       ]*[a-f0-9]+:[   ]*62 db 4d 08 0a 18 04[         ]+vrndscaless \$0x4,\(%r24\),%xmm6,%xmm3
 [       ]*[a-f0-9]+:[   ]*62 4c 7c 08 66 8c 87 23 01 00 00[     ]+wrssd[        ]+%r25d,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 4c fc 08 66 bc 87 23 01 00 00[     ]+wrssq[        ]+%r31,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 4c 7d 08 65 8c 87 23 01 00 00[     ]+wrussd[       ]+%r25d,0x123\(%r31,%rax,4\)
index a8f9231b5b0c54c472281f56ab85bcdec296c8b9..c72f7012c0eadd14066569224af1d3a8c3ab2d85 100644 (file)
@@ -138,16 +138,6 @@ Disassembly of section \.text:
 [       ]*[a-f0-9]+:[   ]*62 da 7f 08 4b b4 87 23 01 00 00[     ]+tileloadd[    ]+0x123\(%r31,%rax,4\),%tmm6
 [       ]*[a-f0-9]+:[   ]*62 da 7d 08 4b b4 87 23 01 00 00[     ]+tileloaddt1[  ]+0x123\(%r31,%rax,4\),%tmm6
 [       ]*[a-f0-9]+:[   ]*62 da 7e 08 4b b4 87 23 01 00 00[     ]+tilestored[   ]+%tmm6,0x123\(%r31,%rax,4\)
-[       ]*[a-f0-9]+:[   ]*62 fa 7d 28 1a 18[    ]+vbroadcastf32x4 \(%r16\),%ymm3
-[       ]*[a-f0-9]+:[   ]*62 fa 7d 28 5a 18[    ]+vbroadcasti32x4 \(%r16\),%ymm3
-[       ]*[a-f0-9]+:[   ]*62 fb 7d 28 19 18 01[         ]+vextractf32x4 \$(0x)?1,%ymm3,\(%r16\)
-[       ]*[a-f0-9]+:[   ]*62 fb 7d 28 39 18 01[         ]+vextracti32x4 \$(0x)?1,%ymm3,\(%r16\)
-[       ]*[a-f0-9]+:[   ]*62 7b 65 28 18 00 01[         ]+vinsertf32x4 \$(0x)?1,\(%r16\),%ymm3,%ymm8
-[       ]*[a-f0-9]+:[   ]*62 7b 65 28 38 00 01[         ]+vinserti32x4 \$(0x)?1,\(%r16\),%ymm3,%ymm8
-[       ]*[a-f0-9]+:[   ]*62 db fd 08 09 30 01[         ]+vrndscalepd \$0x1,\(%r24\),%xmm6
-[       ]*[a-f0-9]+:[   ]*62 db 7d 08 08 30 02[         ]+vrndscaleps \$0x2,\(%r24\),%xmm6
-[       ]*[a-f0-9]+:[   ]*62 db cd 08 0b 18 03[         ]+vrndscalesd \$0x3,\(%r24\),%xmm6,%xmm3
-[       ]*[a-f0-9]+:[   ]*62 db 4d 08 0a 18 04[         ]+vrndscaless \$0x4,\(%r24\),%xmm6,%xmm3
 [       ]*[a-f0-9]+:[   ]*62 4c 7c 08 66 8c 87 23 01 00 00[     ]+wrssd[        ]+%r25d,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 4c fc 08 66 bc 87 23 01 00 00[     ]+wrssq[        ]+%r31,0x123\(%r31,%rax,4\)
 [       ]*[a-f0-9]+:[   ]*62 4c 7d 08 65 8c 87 23 01 00 00[     ]+wrussd[       ]+%r25d,0x123\(%r31,%rax,4\)
index 1ba7d72cf9e50f8479b51d6cf9bddffcf272040c..b66ee19df69143246eb570f13c8307ee075f8ca4 100644 (file)
@@ -132,16 +132,6 @@ _start:
        tileloadd       0x123(%r31,%rax,4),%tmm6
        tileloaddt1     0x123(%r31,%rax,4),%tmm6
        tilestored      %tmm6,0x123(%r31,%rax,4)
-       vbroadcastf128  (%r16),%ymm3
-       vbroadcasti128  (%r16),%ymm3
-       vextractf128    $1,%ymm3,(%r16)
-       vextracti128    $1,%ymm3,(%r16)
-       vinsertf128     $1,(%r16),%ymm3,%ymm8
-       vinserti128     $1,(%r16),%ymm3,%ymm8
-       vroundpd $1,(%r24),%xmm6
-       vroundps $2,(%r24),%xmm6
-       vroundsd $3,(%r24),%xmm6,%xmm3
-       vroundss $4,(%r24),%xmm6,%xmm3
        wrssd   %r25d,0x123(%r31,%rax,4)
        wrssq   %r31,0x123(%r31,%rax,4)
        wrussd  %r25d,0x123(%r31,%rax,4)
index 5049a3b00f2886e87ad7ed4c72c8635392c12610..350c5a8cdb24b382dca17ae592148d776ab875ad 100644 (file)
@@ -1663,8 +1663,6 @@ vandp<sd>, 0x<sd:ppfx>54, AVX, Modrm|C|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandS
 vblendp<sd>, 0x660c | <sd:opc>, AVX, Modrm|Vex|Space0F3A|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vblendvp<sd>, 0x664a | <sd:opc>, AVX, Modrm|Vex|Space0F3A|Src1VVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vbroadcastf128, 0x661a, AVX, Modrm|Vex256|Space0F38|VexW0|NoSuf, { Xmmword|Unspecified|BaseIndex, RegYMM }
-// vbroadcastf32x4 in disguise (see vround{p,s}{s,d} comment)
-vbroadcastf128, 0x661a, APX_F&AVX512VL, Modrm|EVex256|Space0F38|VexW0|Disp8MemShift=4|NoSuf, { Xmmword|Unspecified|BaseIndex, RegYMM }
 vbroadcastsd, 0x6619, AVX, Modrm|Vex256|Space0F38|VexW0|NoSuf, { Qword|Unspecified|BaseIndex, RegYMM }
 vbroadcastss, 0x6618, AVX, Modrm|Vex128|Space0F38|VexW0|NoSuf, { Dword|Unspecified|BaseIndex, RegXMM|RegYMM }
 vcmp<frel>p<sd>, 0x<sd:ppfx>c2/0x<frel:imm>, AVX, Modrm|<frel:comm>|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf|ImmExt, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
@@ -1693,8 +1691,6 @@ vdivs<sd>, 0x<sd:spfx>5e, AVX, Modrm|VexLIG|Space0F|Src1VVVV|VexWIG|NoSuf, { <sd
 vdppd, 0x6641, AVX, Modrm|Vex|Space0F3A|Src1VVVV|VexWIG|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vdpps, 0x6640, AVX, Modrm|Vex|Space0F3A|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vextractf128, 0x6619, AVX, Modrm|Vex256|Space0F3A|VexW0|NoSuf, { Imm8, RegYMM, Unspecified|BaseIndex|RegXMM }
-// vextractf32x4 in disguise (see vround{p,s}{s,d} comment)
-vextractf128, 0x6619, APX_F&AVX512VL, Modrm|EVex256|Space0F3A|VexW0|Disp8MemShift=4|NoSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex }
 vextractps, 0x6617, AVX|AVX512F, Modrm|Vex128|EVex128|Space0F3A|VexWIG|Disp8MemShift=2|NoSuf, { Imm8, RegXMM, Reg32|Unspecified|BaseIndex }
 vextractps, 0x6617, x64&(AVX|AVX512F), RegMem|Vex128|EVex128|Space0F3A|VexWIG|NoSuf, { Imm8, RegXMM, Reg64 }
 vhaddpd, 0x667c, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
@@ -1702,8 +1698,6 @@ vhaddps, 0xf27c, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf,
 vhsubpd, 0x667d, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vhsubps, 0xf27d, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vinsertf128, 0x6618, AVX, Modrm|Vex256|Space0F3A|Src1VVVV|VexW0|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
-// vinsertf32x4 in disguise (see vround{p,s}{s,d} comment)
-vinsertf128, 0x6618, APX_F&AVX512VL, Modrm|EVex256|Space0F3A|Src1VVVV|VexW0|Disp8MemShift=4|NoSuf, { Imm8, Xmmword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vinsertps, 0x6621, AVX, Modrm|Vex|Space0F3A|Src1VVVV|VexWIG|NoSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vlddqu, 0xf2f0, AVX, Modrm|Vex|Space0F|VexWIG|CheckOperandSize|NoSuf, { Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM }
 vldmxcsr, 0xae/2, AVX, Modrm|Vex128|Space0F|VexWIG|NoSuf, { Dword|Unspecified|BaseIndex }
@@ -1872,10 +1866,6 @@ vrcpps, 0x53, AVX, Modrm|Vex|Space0F|VexWIG|CheckOperandSize|NoSuf, { Unspecifie
 vrcpss, 0xf353, AVX, Modrm|Vex=3|Space0F|Src1VVVV|VexWIG|NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vroundp<sd>, 0x6608 | <sd:opc>, AVX, Modrm|Vex|Space0F3A|VexWIG|CheckOperandSize|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
 vrounds<sd>, 0x660a | <sd:opc>, AVX, Modrm|VexLIG|Space0F3A|Src1VVVV|VexWIG|NoSuf, { Imm8, <sd:elem>|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
-// These are really clones of VRNDSCALE{P,S}{S,D}, with broadcast, masking, SAE,
-// 512-bit operand size, and register sources dropped.
-vroundp<sd>, 0x6608 | <sd:opc>, APX_F&AVX512VL, Modrm|Space0F3A|<sd:vexw>|Disp8ShiftVL|CheckOperandSize|NoSuf, { Imm8, Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM }
-vrounds<sd>, 0x660a | <sd:opc>, APX_F&AVX512F, Modrm|EVexLIG|Space0F3A|Src1VVVV|<sd:vexw>|Disp8MemShift|NoSuf, { Imm8, <sd:elem>|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrsqrtps, 0x52, AVX, Modrm|Vex|Space0F|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
 vrsqrtss, 0xf352, AVX, Modrm|Vex=3|Space0F|Src1VVVV|VexWIG|NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vshufp<sd>, 0x<sd:ppfx>c6, AVX, Modrm|Vex|Space0F|Src1VVVV|VexWIG|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
@@ -1911,8 +1901,6 @@ vpmovzxwq, 0x6634, AVX2|AVX512VL, Modrm|Vex256|EVex256|Masking|Space0F38|VexWIG|
 // New AVX2 instructions.
 
 vbroadcasti128, 0x665A, AVX2, Modrm|Vex256|Space0F38|VexW0|NoSuf, { Xmmword|Unspecified|BaseIndex, RegYMM }
-// vbroadcasti32x4 in disguise (see vround{p,s}{s,d} comment)
-vbroadcasti128, 0x665a, APX_F&AVX512VL, Modrm|EVex256|Space0F38|VexW0|Disp8MemShift=4|NoSuf, { Xmmword|Unspecified|BaseIndex, RegYMM }
 vbroadcastsd, 0x6619, AVX2, Modrm|Vex=2|Space0F38|VexW=1|NoSuf, { RegXMM, RegYMM }
 vbroadcastss, 0x6618, AVX2|AVX512F, Modrm|Vex|EVexDYN|Masking|Space0F38|VexW0|Disp8MemShift=2|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
 vpblendd, 0x6602, AVX2, Modrm|Vex|Space0F3A|Src1VVVV|VexW0|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
@@ -1925,11 +1913,7 @@ vpermpd, 0x6601, AVX2|AVX512F, Modrm|Vex256|EVexDYN|Masking|Space0F3A|VexW1|Broa
 vpermps, 0x6616, AVX2|AVX512F, Modrm|Vex256|EVexDYN|Masking|Space0F38|Src1VVVV|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegYMM|RegZMM, RegYMM|RegZMM }
 vpermq, 0x6600, AVX2|AVX512F, Modrm|Vex256|EVexDYN|Masking|Space0F3A|VexW1|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { Imm8|Imm8S, RegYMM|RegZMM|Qword|Unspecified|BaseIndex, RegYMM|RegZMM }
 vextracti128, 0x6639, AVX2, Modrm|Vex256|Space0F3A|VexW0|NoSuf, { Imm8, RegYMM, Unspecified|BaseIndex|RegXMM }
-// vextracti32x4 in disguise (see vround{p,s}{s,d} comment)
-vextracti128, 0x6639, APX_F&AVX512VL, Modrm|EVex256|Space0F3A|VexW0|Disp8MemShift=4|NoSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex }
 vinserti128, 0x6638, AVX2, Modrm|Vex256|Space0F3A|Src1VVVV|VexW0|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
-// vinserti32x4 in disguise (see vround{p,s}{s,d} comment)
-vinserti128, 0x6638, APX_F&AVX512VL, Modrm|EVex256|Space0F3A|Src1VVVV|VexW0|Disp8MemShift=4|NoSuf, { Imm8, Xmmword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vpmaskmov<dq>, 0x668e, AVX2, Modrm|Vex|Space0F38|Src1VVVV|<dq:vexw>|CheckOperandSize|NoSuf, { RegXMM|RegYMM, RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
 vpmaskmov<dq>, 0x668c, AVX2, Modrm|Vex|Space0F38|Src1VVVV|<dq:vexw>|CheckOperandSize|NoSuf, { Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
 vpsllv<dq>, 0x6647, AVX2|AVX512F, Modrm|Vex|EVexDYN|Masking|Space0F38|Src1VVVV|<dq:vexw>|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|<dq:elem>|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM }
index 631e2a62bfc921591696ff00cad6fdc78e3a9e5d..9f234669dc52628cd285916696a6670fd48a4b82 100644 (file)
@@ -20050,16 +20050,6 @@ static const insn_template i386_optab[] =
          1, 0, 0, 0, 1, 0 } },
       { { 7, 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 } } } },
-  { MN_vbroadcastf128, 0x1a, 2, SPACE_0F38, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 0, 0, 0, 1, 0 } },
-      { { 7, 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 } } } },
   { MN_vbroadcastsd, 0x19, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -25492,18 +25482,6 @@ static const insn_template i386_optab[] =
          0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
          1, 0, 0, 0, 1, 0 } } } },
-  { MN_vextractf128, 0x19, 3, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 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 } },
-      { { 7, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 0, 0, 0, 1, 0 } } } },
   { MN_vextractps, 0x17, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
@@ -25590,20 +25568,6 @@ static const insn_template i386_optab[] =
          0, 1, 0, 0, 0, 0 } },
       { { 7, 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 } } } },
-  { MN_vinsertf128, 0x18, 4, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 1, 1, 1, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 0, 0, 0, 1, 0 } },
-      { { 7, 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 } },
-      { { 7, 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 } } } },
   { MN_vinsertps, 0x21, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -30006,18 +29970,6 @@ static const insn_template i386_optab[] =
          1, 1, 0, 0, 1, 0 } },
       { { 7, 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 } } } },
-  { MN_vroundps, 0x08 | 0, 3, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 1, 0, 0, 1, 0 } },
-      { { 7, 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 } } } },
   { MN_vroundpd, 0x08 | 1, 3, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -30030,18 +29982,6 @@ static const insn_template i386_optab[] =
          1, 1, 0, 0, 1, 0 } },
       { { 7, 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 } } } },
-  { MN_vroundpd, 0x08 | 1, 3, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 1, 0, 0, 1, 0 } },
-      { { 7, 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 } } } },
   { MN_vroundss, 0x0a | 0, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -30056,20 +29996,6 @@ static const insn_template i386_optab[] =
          1, 0, 0, 0, 0, 0 } },
       { { 7, 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 } } } },
-  { MN_vroundss, 0x0a | 0, 4, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 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, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
-         0, 0, 0, 0, 1, 0 } },
-      { { 7, 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 } },
-      { { 7, 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 } } } },
   { MN_vroundsd, 0x0a | 1, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 3, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -30084,20 +30010,6 @@ static const insn_template i386_optab[] =
          1, 0, 0, 0, 0, 0 } },
       { { 7, 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 } } } },
-  { MN_vroundsd, 0x0a | 1, 4, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 1, 2, 1, 0, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
-         0, 0, 0, 0, 1, 0 } },
-      { { 7, 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 } },
-      { { 7, 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 } } } },
   { MN_vrsqrtps, 0x52, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -30598,16 +30510,6 @@ static const insn_template i386_optab[] =
          1, 0, 0, 0, 1, 0 } },
       { { 7, 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 } } } },
-  { MN_vbroadcasti128, 0x5a, 2, SPACE_0F38, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 0, 0, 0, 1, 0 } },
-      { { 7, 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 } } } },
   { MN_vpblendd, 0x02, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -30830,18 +30732,6 @@ static const insn_template i386_optab[] =
          0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
          1, 0, 0, 0, 1, 0 } } } },
-  { MN_vextracti128, 0x39, 3, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 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 } },
-      { { 7, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 0, 0, 0, 1, 0 } } } },
   { MN_vinserti128, 0x38, 4, SPACE_0F3A, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -30856,20 +30746,6 @@ static const insn_template i386_optab[] =
          0, 1, 0, 0, 0, 0 } },
       { { 7, 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 } } } },
-  { MN_vinserti128, 0x38, 4, SPACE_0F3A, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 1, 1, 1, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-      0, 0 },
-    { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
-         1, 0, 0, 0, 1, 0 } },
-      { { 7, 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 } },
-      { { 7, 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 } } } },
   { MN_vpmaskmovd, 0x8e, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -46017,203 +45893,203 @@ static const i386_op_off_t i386_op_sets[] =
   2019, 2021, 2023, 2025, 2027, 2029, 2031, 2033,
   2035, 2037, 2039, 2041, 2043, 2045, 2047, 2049,
   2051, 2053, 2055, 2056, 2057, 2059, 2061, 2063,
-  2065, 2066, 2067, 2068, 2069, 2071, 2074, 2076,
-  2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092,
-  2094, 2096, 2098, 2100, 2102, 2104, 2106, 2108,
-  2110, 2112, 2114, 2116, 2118, 2120, 2122, 2124,
-  2126, 2128, 2130, 2132, 2134, 2136, 2138, 2140,
-  2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156,
-  2158, 2160, 2162, 2164, 2166, 2168, 2170, 2172,
-  2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188,
-  2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204,
-  2206, 2208, 2210, 2212, 2214, 2216, 2218, 2220,
-  2222, 2224, 2226, 2228, 2230, 2232, 2234, 2236,
-  2238, 2240, 2242, 2244, 2246, 2248, 2250, 2252,
-  2254, 2256, 2258, 2260, 2262, 2264, 2266, 2268,
-  2270, 2272, 2274, 2276, 2278, 2280, 2282, 2284,
-  2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300,
-  2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316,
-  2318, 2320, 2322, 2324, 2326, 2328, 2330, 2332,
-  2334, 2336, 2338, 2340, 2342, 2344, 2346, 2348,
-  2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364,
-  2366, 2368, 2370, 2372, 2374, 2376, 2378, 2380,
-  2382, 2384, 2386, 2388, 2390, 2392, 2394, 2396,
-  2398, 2400, 2402, 2404, 2406, 2408, 2410, 2412,
-  2414, 2416, 2418, 2420, 2422, 2424, 2426, 2428,
-  2430, 2432, 2434, 2436, 2438, 2440, 2442, 2444,
-  2446, 2448, 2450, 2452, 2454, 2456, 2461, 2463,
-  2468, 2470, 2472, 2477, 2479, 2481, 2483, 2488,
-  2490, 2492, 2494, 2498, 2504, 2506, 2511, 2513,
-  2515, 2517, 2519, 2521, 2523, 2525, 2527, 2529,
-  2530, 2531, 2533, 2535, 2536, 2537, 2538, 2539,
-  2541, 2543, 2544, 2545, 2546, 2548, 2550, 2552,
-  2554, 2556, 2558, 2560, 2562, 2564, 2566, 2568,
-  2570, 2572, 2576, 2577, 2578, 2580, 2584, 2588,
-  2590, 2594, 2598, 2599, 2600, 2602, 2604, 2606,
-  2608, 2613, 2617, 2621, 2623, 2625, 2627, 2629,
-  2630, 2632, 2634, 2636, 2638, 2640, 2642, 2644,
-  2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660,
-  2662, 2664, 2666, 2668, 2670, 2672, 2674, 2675,
-  2676, 2678, 2680, 2681, 2682, 2685, 2688, 2691,
-  2694, 2696, 2698, 2700, 2702, 2704, 2706, 2707,
-  2708, 2709, 2711, 2715, 2717, 2719, 2725, 2729,
-  2730, 2731, 2732, 2733, 2734, 2735, 2736, 2740,
-  2742, 2744, 2748, 2750, 2752, 2754, 2756, 2758,
-  2760, 2762, 2764, 2766, 2768, 2770, 2772, 2774,
-  2776, 2777, 2780, 2783, 2788, 2793, 2796, 2799,
-  2802, 2805, 2810, 2815, 2818, 2821, 2823, 2825,
-  2827, 2829, 2831, 2833, 2835, 2836, 2838, 2840,
-  2842, 2844, 2846, 2847, 2848, 2849, 2853, 2857,
-  2859, 2863, 2867, 2871, 2875, 2879, 2881, 2885,
-  2887, 2889, 2891, 2893, 2895, 2897, 2899, 2901,
-  2902, 2904, 2906, 2908, 2910, 2912, 2914, 2916,
-  2918, 2919, 2920, 2921, 2923, 2925, 2927, 2929,
-  2930, 2931, 2933, 2935, 2937, 2939, 2941, 2943,
-  2944, 2946, 2948, 2950, 2952, 2953, 2954, 2956,
-  2958, 2960, 2962, 2964, 2966, 2968, 2970, 2971,
-  2972, 2974, 2975, 2978, 2981, 2983, 2986, 2987,
-  2988, 2990, 2991, 2993, 2995, 2997, 2999, 3001,
-  3002, 3003, 3004, 3005, 3006, 3009, 3014, 3019,
-  3024, 3029, 3032, 3037, 3042, 3044, 3046, 3048,
-  3050, 3051, 3052, 3054, 3056, 3058, 3060, 3062,
-  3064, 3066, 3067, 3068, 3069, 3070, 3071, 3072,
-  3077, 3082, 3083, 3084, 3085, 3086, 3087, 3088,
-  3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096,
-  3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104,
-  3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112,
-  3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120,
-  3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128,
-  3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136,
-  3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144,
-  3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152,
-  3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160,
-  3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168,
-  3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176,
-  3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184,
-  3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192,
-  3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200,
-  3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208,
-  3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216,
-  3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224,
-  3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232,
-  3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240,
-  3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248,
-  3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256,
-  3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264,
-  3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272,
-  3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280,
-  3281, 3282, 3283, 3285, 3287, 3288, 3289, 3290,
-  3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298,
-  3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306,
-  3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314,
-  3315, 3317, 3319, 3321, 3323, 3324, 3325, 3326,
-  3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334,
-  3335, 3336, 3338, 3339, 3340, 3341, 3343, 3344,
-  3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352,
-  3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360,
-  3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368,
-  3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376,
-  3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384,
-  3386, 3388, 3389, 3390, 3392, 3393, 3395, 3397,
-  3398, 3399, 3401, 3403, 3405, 3407, 3408, 3409,
-  3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417,
-  3418, 3419, 3420, 3421, 3422, 3423, 3426, 3429,
-  3430, 3431, 3432, 3433, 3434, 3435, 3437, 3439,
-  3441, 3442, 3443, 3444, 3445, 3446, 3447, 3449,
-  3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457,
-  3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465,
-  3466, 3467, 3468, 3469, 3472, 3475, 3476, 3477,
-  3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485,
-  3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493,
-  3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501,
-  3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509,
-  3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517,
-  3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525,
-  3526, 3527, 3528, 3529, 3532, 3534, 3537, 3540,
-  3542, 3545, 3548, 3551, 3554, 3555, 3558, 3559,
-  3560, 3561, 3562, 3563, 3567, 3569, 3572, 3573,
-  3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581,
-  3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589,
-  3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597,
-  3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605,
-  3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613,
-  3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621,
-  3622, 3623, 3624, 3625, 3626, 3627, 3629, 3630,
-  3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638,
-  3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646,
-  3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654,
-  3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662,
-  3663, 3664, 3665, 3666, 3667, 3668, 3671, 3674,
-  3677, 3680, 3683, 3686, 3689, 3692, 3695, 3698,
-  3701, 3704, 3707, 3710, 3713, 3714, 3715, 3716,
-  3717, 3719, 3720, 3721, 3722, 3723, 3724, 3725,
-  3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733,
-  3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741,
-  3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749,
-  3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757,
-  3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765,
-  3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773,
-  3774, 3775, 3776, 3777, 3778, 3779, 3780, 3783,
-  3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793,
-  3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801,
-  3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809,
-  3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817,
-  3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825,
-  3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833,
-  3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841,
-  3842, 3843, 3844, 3845, 3846, 3847, 3848, 3851,
-  3854, 3857, 3858, 3859, 3860, 3861, 3862, 3863,
-  3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871,
-  3872, 3873, 3876, 3879, 3880, 3881, 3884, 3885,
-  3886, 3887, 3888, 3891, 3894, 3897, 3898, 3899,
-  3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907,
-  3909, 3911, 3912, 3913, 3914, 3915, 3916, 3917,
-  3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925,
-  3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933,
-  3934, 3935, 3936, 3938, 3940, 3941, 3942, 3943,
-  3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951,
-  3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959,
-  3960, 3961, 3962, 3963, 3964, 3965, 3967, 3969,
-  3971, 3973, 3974, 3975, 3976, 3977, 3978, 3979,
-  3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987,
-  3988, 3990, 3991, 3993, 3996, 3998, 3999, 4000,
-  4002, 4004, 4005, 4006, 4007, 4008, 4009, 4010,
-  4012, 4014, 4016, 4018, 4019, 4020, 4021, 4022,
-  4023, 4024, 4025, 4026, 4027, 4029, 4031, 4032,
-  4034, 4036, 4037, 4042, 4044, 4046, 4047, 4048,
-  4049, 4050, 4051, 4052, 4053, 4055, 4057, 4058,
-  4059, 4060, 4062, 4065, 4068, 4071, 4073, 4074,
-  4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082,
-  4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090,
-  4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098,
-  4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106,
-  4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114,
-  4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122,
-  4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130,
-  4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138,
-  4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146,
-  4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154,
-  4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162,
-  4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170,
-  4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178,
-  4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186,
-  4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194,
-  4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202,
-  4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210,
-  4211, 4212, 4213, 4214, 4215, 4218, 4219, 4220,
-  4223, 4224, 4225, 4227, 4228, 4229, 4230, 4232,
-  4233, 4234, 4235, 4237, 4238, 4239, 4240, 4243,
-  4244, 4245, 4246, 4247, 4250, 4253, 4256, 4259,
-  4262, 4263, 4264, 4265, 4266, 4268, 4270, 4271,
-  4272, 4273, 4276, 4279, 4282, 4285, 4288, 4289,
-  4290, 4291, 4293, 4294, 4295, 4296, 4298, 4299,
-  4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307,
-  4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315,
-  4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323,
-  4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331,
-  4332, 4333, 4334, 4335, 4336, 4337, 4339, 4341,
-  4343, 4345, 4347, 4348, 4349, 4352, 4355, 4356,
-  4357, 4358, 4359
+  2065, 2066, 2067, 2068, 2069, 2070, 2073, 2075,
+  2077, 2079, 2081, 2083, 2085, 2087, 2089, 2091,
+  2093, 2095, 2097, 2099, 2101, 2103, 2105, 2107,
+  2109, 2111, 2113, 2115, 2117, 2119, 2121, 2123,
+  2125, 2127, 2129, 2131, 2133, 2135, 2137, 2139,
+  2141, 2143, 2145, 2147, 2149, 2151, 2153, 2155,
+  2157, 2159, 2161, 2163, 2165, 2167, 2169, 2171,
+  2173, 2175, 2177, 2179, 2181, 2183, 2185, 2187,
+  2189, 2191, 2193, 2195, 2197, 2199, 2201, 2203,
+  2205, 2207, 2209, 2211, 2213, 2215, 2217, 2219,
+  2221, 2223, 2225, 2227, 2229, 2231, 2233, 2235,
+  2237, 2239, 2241, 2243, 2245, 2247, 2249, 2251,
+  2253, 2255, 2257, 2259, 2261, 2263, 2265, 2267,
+  2269, 2271, 2273, 2275, 2277, 2279, 2281, 2283,
+  2285, 2287, 2289, 2291, 2293, 2295, 2297, 2299,
+  2301, 2303, 2305, 2307, 2309, 2311, 2313, 2315,
+  2317, 2319, 2321, 2323, 2325, 2327, 2329, 2331,
+  2333, 2335, 2337, 2339, 2341, 2343, 2345, 2347,
+  2349, 2351, 2353, 2355, 2357, 2359, 2361, 2363,
+  2365, 2367, 2369, 2371, 2373, 2375, 2377, 2379,
+  2381, 2383, 2385, 2387, 2389, 2391, 2393, 2395,
+  2397, 2399, 2401, 2403, 2405, 2407, 2409, 2411,
+  2413, 2415, 2417, 2419, 2421, 2423, 2425, 2427,
+  2429, 2431, 2433, 2435, 2437, 2439, 2441, 2443,
+  2445, 2447, 2449, 2451, 2453, 2455, 2460, 2462,
+  2467, 2469, 2471, 2476, 2478, 2480, 2482, 2487,
+  2489, 2491, 2493, 2497, 2503, 2505, 2510, 2512,
+  2514, 2516, 2518, 2520, 2522, 2524, 2526, 2528,
+  2529, 2530, 2531, 2533, 2534, 2535, 2536, 2537,
+  2538, 2540, 2541, 2542, 2543, 2545, 2547, 2549,
+  2551, 2553, 2555, 2557, 2559, 2561, 2563, 2565,
+  2567, 2569, 2573, 2574, 2575, 2577, 2581, 2585,
+  2587, 2591, 2595, 2596, 2597, 2599, 2601, 2603,
+  2605, 2610, 2614, 2618, 2620, 2622, 2624, 2626,
+  2627, 2629, 2631, 2633, 2635, 2637, 2639, 2641,
+  2643, 2645, 2647, 2649, 2651, 2653, 2655, 2657,
+  2659, 2661, 2663, 2665, 2667, 2669, 2671, 2672,
+  2673, 2675, 2677, 2678, 2679, 2682, 2685, 2688,
+  2691, 2693, 2695, 2697, 2699, 2701, 2703, 2704,
+  2705, 2706, 2708, 2712, 2714, 2716, 2722, 2726,
+  2727, 2728, 2729, 2730, 2731, 2732, 2733, 2737,
+  2739, 2741, 2745, 2747, 2749, 2751, 2753, 2755,
+  2757, 2759, 2761, 2763, 2765, 2767, 2769, 2771,
+  2773, 2774, 2777, 2780, 2785, 2790, 2793, 2796,
+  2799, 2802, 2807, 2812, 2815, 2818, 2820, 2822,
+  2824, 2826, 2828, 2830, 2832, 2833, 2835, 2837,
+  2839, 2841, 2843, 2844, 2845, 2846, 2850, 2854,
+  2856, 2860, 2864, 2868, 2872, 2876, 2878, 2882,
+  2884, 2886, 2888, 2890, 2892, 2894, 2896, 2898,
+  2899, 2901, 2903, 2905, 2907, 2909, 2911, 2913,
+  2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922,
+  2923, 2924, 2926, 2928, 2930, 2932, 2934, 2936,
+  2937, 2939, 2941, 2943, 2945, 2946, 2947, 2949,
+  2951, 2953, 2955, 2957, 2959, 2961, 2963, 2964,
+  2965, 2966, 2967, 2970, 2973, 2975, 2978, 2979,
+  2980, 2982, 2983, 2985, 2986, 2987, 2989, 2991,
+  2992, 2993, 2994, 2995, 2996, 2999, 3004, 3009,
+  3014, 3019, 3022, 3027, 3032, 3034, 3036, 3038,
+  3040, 3041, 3042, 3044, 3046, 3048, 3050, 3052,
+  3054, 3056, 3057, 3058, 3059, 3060, 3061, 3062,
+  3067, 3072, 3073, 3074, 3075, 3076, 3077, 3078,
+  3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086,
+  3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094,
+  3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102,
+  3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110,
+  3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118,
+  3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126,
+  3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134,
+  3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142,
+  3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150,
+  3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158,
+  3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166,
+  3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174,
+  3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182,
+  3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190,
+  3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198,
+  3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206,
+  3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214,
+  3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222,
+  3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230,
+  3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238,
+  3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246,
+  3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254,
+  3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262,
+  3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270,
+  3271, 3272, 3273, 3275, 3277, 3278, 3279, 3280,
+  3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288,
+  3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296,
+  3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304,
+  3305, 3307, 3309, 3311, 3313, 3314, 3315, 3316,
+  3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324,
+  3325, 3326, 3328, 3329, 3330, 3331, 3333, 3334,
+  3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342,
+  3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350,
+  3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358,
+  3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366,
+  3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374,
+  3376, 3378, 3379, 3380, 3382, 3383, 3385, 3387,
+  3388, 3389, 3391, 3393, 3395, 3397, 3398, 3399,
+  3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407,
+  3408, 3409, 3410, 3411, 3412, 3413, 3416, 3419,
+  3420, 3421, 3422, 3423, 3424, 3425, 3427, 3429,
+  3431, 3432, 3433, 3434, 3435, 3436, 3437, 3439,
+  3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447,
+  3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455,
+  3456, 3457, 3458, 3459, 3462, 3465, 3466, 3467,
+  3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475,
+  3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483,
+  3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491,
+  3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499,
+  3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507,
+  3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515,
+  3516, 3517, 3518, 3519, 3522, 3524, 3527, 3530,
+  3532, 3535, 3538, 3541, 3544, 3545, 3548, 3549,
+  3550, 3551, 3552, 3553, 3557, 3559, 3562, 3563,
+  3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571,
+  3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579,
+  3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587,
+  3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595,
+  3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603,
+  3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611,
+  3612, 3613, 3614, 3615, 3616, 3617, 3619, 3620,
+  3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628,
+  3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636,
+  3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644,
+  3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652,
+  3653, 3654, 3655, 3656, 3657, 3658, 3661, 3664,
+  3667, 3670, 3673, 3676, 3679, 3682, 3685, 3688,
+  3691, 3694, 3697, 3700, 3703, 3704, 3705, 3706,
+  3707, 3709, 3710, 3711, 3712, 3713, 3714, 3715,
+  3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723,
+  3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731,
+  3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739,
+  3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747,
+  3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755,
+  3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763,
+  3764, 3765, 3766, 3767, 3768, 3769, 3770, 3773,
+  3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783,
+  3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791,
+  3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799,
+  3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807,
+  3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815,
+  3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823,
+  3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831,
+  3832, 3833, 3834, 3835, 3836, 3837, 3838, 3841,
+  3844, 3847, 3848, 3849, 3850, 3851, 3852, 3853,
+  3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861,
+  3862, 3863, 3866, 3869, 3870, 3871, 3874, 3875,
+  3876, 3877, 3878, 3881, 3884, 3887, 3888, 3889,
+  3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897,
+  3899, 3901, 3902, 3903, 3904, 3905, 3906, 3907,
+  3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915,
+  3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923,
+  3924, 3925, 3926, 3928, 3930, 3931, 3932, 3933,
+  3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941,
+  3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949,
+  3950, 3951, 3952, 3953, 3954, 3955, 3957, 3959,
+  3961, 3963, 3964, 3965, 3966, 3967, 3968, 3969,
+  3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977,
+  3978, 3980, 3981, 3983, 3986, 3988, 3989, 3990,
+  3992, 3994, 3995, 3996, 3997, 3998, 3999, 4000,
+  4002, 4004, 4006, 4008, 4009, 4010, 4011, 4012,
+  4013, 4014, 4015, 4016, 4017, 4019, 4021, 4022,
+  4024, 4026, 4027, 4032, 4034, 4036, 4037, 4038,
+  4039, 4040, 4041, 4042, 4043, 4045, 4047, 4048,
+  4049, 4050, 4052, 4055, 4058, 4061, 4063, 4064,
+  4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072,
+  4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080,
+  4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088,
+  4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096,
+  4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104,
+  4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112,
+  4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120,
+  4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128,
+  4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136,
+  4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144,
+  4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152,
+  4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160,
+  4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168,
+  4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176,
+  4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184,
+  4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192,
+  4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200,
+  4201, 4202, 4203, 4204, 4205, 4208, 4209, 4210,
+  4213, 4214, 4215, 4217, 4218, 4219, 4220, 4222,
+  4223, 4224, 4225, 4227, 4228, 4229, 4230, 4233,
+  4234, 4235, 4236, 4237, 4240, 4243, 4246, 4249,
+  4252, 4253, 4254, 4255, 4256, 4258, 4260, 4261,
+  4262, 4263, 4266, 4269, 4272, 4275, 4278, 4279,
+  4280, 4281, 4283, 4284, 4285, 4286, 4288, 4289,
+  4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297,
+  4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305,
+  4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313,
+  4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321,
+  4322, 4323, 4324, 4325, 4326, 4327, 4329, 4331,
+  4333, 4335, 4337, 4338, 4339, 4342, 4345, 4346,
+  4347, 4348, 4349
 };
 
 /* i386 mnemonics table.  */