]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
x86: add more exhaustive tests for invalid AVX512 zeroing-masking
authorJan Beulich <jbeulich@novell.com>
Tue, 31 Jul 2018 08:56:09 +0000 (10:56 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 31 Jul 2018 08:56:09 +0000 (10:56 +0200)
Before changing how things get handled, install a full set of tests,
such that it can be demonstrated that the subsequent change doesn't
break things.

gas/ChangeLog
gas/testsuite/gas/i386/inval-avx512f.l
gas/testsuite/gas/i386/inval-avx512f.s

index 8c2bc57860c426d5b48b21ab7c46d4cccefaf7b3..ff348368b3ec9d427ef859c46d356721d5fa5a14 100644 (file)
@@ -1,3 +1,9 @@
+2018-07-31  Jan Beulich  <jbeulich@suse.com>
+
+       * testsuite/gas/i386/inval-avx512f.s: Add invalid zeroing-
+       masking tests.
+       * testsuite/gas/i386/inval-avx512f.l: Adjust expectations.
+
 2018-07-31  Jan Beulich  <jbeulich@suse.com>
 
        * testsuite/gas/i386/sg.s, testsuite/gas/i386/sg.l: New.
index b61a9050f5a51f1bf81e0863e3c2943fefa91dd0..048e88b9c073f016a8877eb6be1eb4b25d4d2e56 100644 (file)
 .*:156: Error: .*vaddpd.*
 .*:157: Error: .*vaddpd.*
 .*:159: Error: .*vcvtps2qq.*
+.*:162: Error: .*masking.*vcmppd.*
+.*:163: Error: .*masking.*vcmpps.*
+.*:164: Error: .*masking.*vcmpsd.*
+.*:165: Error: .*masking.*vcmpss.*
+.*:167: Error: .*masking.*vcompresspd.*
+.*:168: Error: .*masking.*vcompressps.*
+.*:170: Error: .*masking.*vcvtps2ph.*
+.*:172: Error: .*masking.*vextractf32x4.*
+.*:173: Error: .*masking.*vextractf32x8.*
+.*:174: Error: .*masking.*vextractf64x2.*
+.*:175: Error: .*masking.*vextractf64x4.*
+.*:177: Error: .*masking.*vextracti32x4.*
+.*:178: Error: .*masking.*vextracti32x8.*
+.*:179: Error: .*masking.*vextracti64x2.*
+.*:180: Error: .*masking.*vextracti64x4.*
+.*:182: Error: .*masking.*vfpclasspd.*
+.*:183: Error: .*masking.*vfpclassps.*
+.*:184: Error: .*masking.*vfpclasssd.*
+.*:185: Error: .*masking.*vfpclassss.*
+.*:187: Error: .*masking.*vgatherdpd.*
+.*:188: Error: .*masking.*vgatherdps.*
+.*:189: Error: .*masking.*vgatherqpd.*
+.*:190: Error: .*masking.*vgatherqps.*
+.*:192: Error: .*masking.*vgatherpf0dpd.*
+.*:193: Error: .*masking.*vgatherpf0dps.*
+.*:194: Error: .*masking.*vgatherpf0qpd.*
+.*:195: Error: .*masking.*vgatherpf0qps.*
+.*:197: Error: .*masking.*vgatherpf1dpd.*
+.*:198: Error: .*masking.*vgatherpf1dps.*
+.*:199: Error: .*masking.*vgatherpf1qpd.*
+.*:200: Error: .*masking.*vgatherpf1qps.*
+.*:202: Error: .*masking.*vmovapd.*
+.*:203: Error: .*masking.*vmovaps.*
+.*:205: Error: .*masking.*vmovdqa32.*
+.*:206: Error: .*masking.*vmovdqa64.*
+.*:208: Error: .*masking.*vmovdqu8.*
+.*:209: Error: .*masking.*vmovdqu16.*
+.*:210: Error: .*masking.*vmovdqu32.*
+.*:211: Error: .*masking.*vmovdqu64.*
+.*:213: Error: .*masking.*vmovsd.*
+.*:214: Error: .*masking.*vmovss.*
+.*:216: Error: .*masking.*vmovupd.*
+.*:217: Error: .*masking.*vmovups.*
+.*:219: Error: .*masking.*vpcmpb.*
+.*:220: Error: .*masking.*vpcmpd.*
+.*:221: Error: .*masking.*vpcmpq.*
+.*:222: Error: .*masking.*vpcmpw.*
+.*:224: Error: .*masking.*vpcmpeqb.*
+.*:225: Error: .*masking.*vpcmpeqd.*
+.*:226: Error: .*masking.*vpcmpeqq.*
+.*:227: Error: .*masking.*vpcmpeqw.*
+.*:229: Error: .*masking.*vpcmpgtb.*
+.*:230: Error: .*masking.*vpcmpgtd.*
+.*:231: Error: .*masking.*vpcmpgtq.*
+.*:232: Error: .*masking.*vpcmpgtw.*
+.*:234: Error: .*masking.*vpcmpub.*
+.*:235: Error: .*masking.*vpcmpud.*
+.*:236: Error: .*masking.*vpcmpuq.*
+.*:237: Error: .*masking.*vpcmpuw.*
+.*:239: Error: .*masking.*vpcompressb.*
+.*:240: Error: .*masking.*vpcompressd.*
+.*:241: Error: .*masking.*vpcompressq.*
+.*:242: Error: .*masking.*vpcompressw.*
+.*:244: Error: .*masking.*vpgatherdd.*
+.*:245: Error: .*masking.*vpgatherdq.*
+.*:246: Error: .*masking.*vpgatherqd.*
+.*:247: Error: .*masking.*vpgatherqq.*
+.*:249: Error: .*masking.*vpmovdb.*
+.*:250: Error: .*masking.*vpmovdw.*
+.*:252: Error: .*masking.*vpmovqb.*
+.*:253: Error: .*masking.*vpmovqd.*
+.*:254: Error: .*masking.*vpmovqw.*
+.*:256: Error: .*masking.*vpmovsdb.*
+.*:257: Error: .*masking.*vpmovsdw.*
+.*:259: Error: .*masking.*vpmovsqb.*
+.*:260: Error: .*masking.*vpmovsqd.*
+.*:261: Error: .*masking.*vpmovsqw.*
+.*:263: Error: .*masking.*vpmovswb.*
+.*:265: Error: .*masking.*vpmovusdb.*
+.*:266: Error: .*masking.*vpmovusdw.*
+.*:268: Error: .*masking.*vpmovusqb.*
+.*:269: Error: .*masking.*vpmovusqd.*
+.*:270: Error: .*masking.*vpmovusqw.*
+.*:272: Error: .*masking.*vpmovuswb.*
+.*:274: Error: .*masking.*vpmovwb.*
+.*:276: Error: .*masking.*vpscatterdd.*
+.*:277: Error: .*masking.*vpscatterdq.*
+.*:278: Error: .*masking.*vpscatterqd.*
+.*:279: Error: .*masking.*vpscatterqq.*
+.*:281: Error: .*masking.*vpshufbitqmb.*
+.*:283: Error: .*masking.*vptestmb.*
+.*:284: Error: .*masking.*vptestmd.*
+.*:285: Error: .*masking.*vptestmq.*
+.*:286: Error: .*masking.*vptestmw.*
+.*:288: Error: .*masking.*vptestnmb.*
+.*:289: Error: .*masking.*vptestnmd.*
+.*:290: Error: .*masking.*vptestnmq.*
+.*:291: Error: .*masking.*vptestnmw.*
+.*:293: Error: .*masking.*vscatterdpd.*
+.*:294: Error: .*masking.*vscatterdps.*
+.*:295: Error: .*masking.*vscatterqpd.*
+.*:296: Error: .*masking.*vscatterqps.*
+.*:298: Error: .*masking.*vscatterpf0dpd.*
+.*:299: Error: .*masking.*vscatterpf0dps.*
+.*:300: Error: .*masking.*vscatterpf0qpd.*
+.*:301: Error: .*masking.*vscatterpf0qps.*
+.*:303: Error: .*masking.*vscatterpf1dpd.*
+.*:304: Error: .*masking.*vscatterpf1dps.*
+.*:305: Error: .*masking.*vscatterpf1qpd.*
+.*:306: Error: .*masking.*vscatterpf1qps.*
 GAS LISTING .*
 
 
@@ -285,3 +395,154 @@ GAS LISTING .*
 [      ]*157[  ]+vaddpd xmm2, xmm1, QWORD PTR \[eax\]\{1to16\}
 [      ]*158[  ]*
 [      ]*159[  ]+vcvtps2qq xmm0, DWORD PTR \[eax\]
+[      ]*160[  ]*
+[      ]*161[  ]+\.att_syntax prefix
+[      ]*162[  ]+vcmppd \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*163[  ]+vcmpps \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*164[  ]+vcmpsd \$0, %xmm0, %xmm0, %k0\{%k1\}\{z\}
+[      ]*165[  ]+vcmpss \$0, %xmm0, %xmm0, %k0\{%k1\}\{z\}
+[      ]*166[  ]*
+[      ]*167[  ]+vcompresspd %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*168[  ]+vcompressps %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*169[  ]*
+[      ]*170[  ]+vcvtps2ph \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*171[  ]*
+[      ]*172[  ]+vextractf32x4 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*173[  ]+vextractf32x8 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*174[  ]+vextractf64x2 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*175[  ]+vextractf64x4 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*176[  ]*
+[      ]*177[  ]+vextracti32x4 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*178[  ]+vextracti32x8 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*179[  ]+vextracti64x2 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*180[  ]+vextracti64x4 \$0, %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*181[  ]*
+[      ]*182[  ]+vfpclasspd \$0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*183[  ]+vfpclassps \$0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*184[  ]+vfpclasssd \$0, %xmm0, %k0\{%k1\}\{z\}
+[      ]*185[  ]+vfpclassss \$0, %xmm0, %k0\{%k1\}\{z\}
+[      ]*186[  ]*
+[      ]*187[  ]+vgatherdpd \(%eax,%ymm1\), %zmm0\{%k1\}\{z\}
+[      ]*188[  ]+vgatherdps \(%eax,%zmm1\), %zmm0\{%k1\}\{z\}
+[      ]*189[  ]+vgatherqpd \(%eax,%zmm1\), %zmm0\{%k1\}\{z\}
+[      ]*190[  ]+vgatherqps \(%eax,%zmm1\), %ymm0\{%k1\}\{z\}
+[      ]*191[  ]*
+[      ]*192[  ]+vgatherpf0dpd \(%eax,%ymm1\)\{%k1\}\{z\}
+[      ]*193[  ]+vgatherpf0dps \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*194[  ]+vgatherpf0qpd \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*195[  ]+vgatherpf0qps \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*196[  ]*
+[      ]*197[  ]+vgatherpf1dpd \(%eax,%ymm1\)\{%k1\}\{z\}
+[      ]*198[  ]+vgatherpf1dps \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*199[  ]+vgatherpf1qpd \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*200[  ]+vgatherpf1qps \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*201[  ]*
+[      ]*202[  ]+vmovapd %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*203[  ]+vmovaps %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*204[  ]*
+[      ]*205[  ]+vmovdqa32 %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*206[  ]+vmovdqa64 %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*207[  ]*
+[      ]*208[  ]+vmovdqu8 %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*209[  ]+vmovdqu16 %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*210[  ]+vmovdqu32 %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*211[  ]+vmovdqu64 %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*212[  ]*
+\fGAS LISTING .*
+#...
+[      ]*213[  ]+vmovsd %xmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*214[  ]+vmovss %xmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*215[  ]*
+[      ]*216[  ]+vmovupd %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*217[  ]+vmovups %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*218[  ]*
+[      ]*219[  ]+vpcmpb \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*220[  ]+vpcmpd \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*221[  ]+vpcmpq \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*222[  ]+vpcmpw \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*223[  ]*
+[      ]*224[  ]+vpcmpeqb %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*225[  ]+vpcmpeqd %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*226[  ]+vpcmpeqq %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*227[  ]+vpcmpeqw %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*228[  ]*
+[      ]*229[  ]+vpcmpgtb %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*230[  ]+vpcmpgtd %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*231[  ]+vpcmpgtq %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*232[  ]+vpcmpgtw %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*233[  ]*
+[      ]*234[  ]+vpcmpub \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*235[  ]+vpcmpud \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*236[  ]+vpcmpuq \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*237[  ]+vpcmpuw \$0, %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*238[  ]*
+[      ]*239[  ]+vpcompressb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*240[  ]+vpcompressd %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*241[  ]+vpcompressq %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*242[  ]+vpcompressw %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*243[  ]*
+[      ]*244[  ]+vpgatherdd \(%eax,%zmm1\), %zmm0\{%k1\}\{z\}
+[      ]*245[  ]+vpgatherdq \(%eax,%ymm1\), %zmm0\{%k1\}\{z\}
+[      ]*246[  ]+vpgatherqd \(%eax,%zmm1\), %ymm0\{%k1\}\{z\}
+[      ]*247[  ]+vpgatherqq \(%eax,%zmm1\), %zmm0\{%k1\}\{z\}
+[      ]*248[  ]*
+[      ]*249[  ]+vpmovdb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*250[  ]+vpmovdw %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*251[  ]*
+[      ]*252[  ]+vpmovqb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*253[  ]+vpmovqd %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*254[  ]+vpmovqw %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*255[  ]*
+[      ]*256[  ]+vpmovsdb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*257[  ]+vpmovsdw %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*258[  ]*
+[      ]*259[  ]+vpmovsqb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*260[  ]+vpmovsqd %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*261[  ]+vpmovsqw %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*262[  ]*
+[      ]*263[  ]+vpmovswb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*264[  ]*
+[      ]*265[  ]+vpmovusdb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*266[  ]+vpmovusdw %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*267[  ]*
+[      ]*268[  ]+vpmovusqb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*269[  ]+vpmovusqd %zmm0, \(%eax\)\{%k1\}\{z\}
+\fGAS LISTING .*
+#...
+[      ]*270[  ]+vpmovusqw %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*271[  ]*
+[      ]*272[  ]+vpmovuswb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*273[  ]*
+[      ]*274[  ]+vpmovwb %zmm0, \(%eax\)\{%k1\}\{z\}
+[      ]*275[  ]*
+[      ]*276[  ]+vpscatterdd %zmm0, \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*277[  ]+vpscatterdq %zmm0, \(%eax,%ymm1\)\{%k1\}\{z\}
+[      ]*278[  ]+vpscatterqd %ymm0, \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*279[  ]+vpscatterqq %zmm0, \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*280[  ]*
+[      ]*281[  ]+vpshufbitqmb %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*282[  ]*
+[      ]*283[  ]+vptestmb %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*284[  ]+vptestmd %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*285[  ]+vptestmq %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*286[  ]+vptestmw %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*287[  ]*
+[      ]*288[  ]+vptestnmb %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*289[  ]+vptestnmd %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*290[  ]+vptestnmq %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*291[  ]+vptestnmw %zmm0, %zmm0, %k0\{%k1\}\{z\}
+[      ]*292[  ]*
+[      ]*293[  ]+vscatterdpd %zmm0, \(%eax,%ymm1\)\{%k1\}\{z\}
+[      ]*294[  ]+vscatterdps %zmm0, \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*295[  ]+vscatterqpd %zmm0, \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*296[  ]+vscatterqps %ymm0, \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*297[  ]*
+[      ]*298[  ]+vscatterpf0dpd \(%eax,%ymm1\)\{%k1\}\{z\}
+[      ]*299[  ]+vscatterpf0dps \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*300[  ]+vscatterpf0qpd \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*301[  ]+vscatterpf0qps \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*302[  ]*
+[      ]*303[  ]+vscatterpf1dpd \(%eax,%ymm1\)\{%k1\}\{z\}
+[      ]*304[  ]+vscatterpf1dps \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*305[  ]+vscatterpf1qpd \(%eax,%zmm1\)\{%k1\}\{z\}
+[      ]*306[  ]+vscatterpf1qps \(%eax,%zmm1\)\{%k1\}\{z\}
index d5217769314b2ca38cd5298d29d2f6e76024164a..f380fe30ee58bb003bfe4cc93d30fb90359c4ce4 100644 (file)
@@ -157,3 +157,150 @@ _start:
        vaddpd xmm2, xmm1, QWORD PTR [eax]{1to16}
 
        vcvtps2qq xmm0, DWORD PTR [eax]
+
+       .att_syntax prefix
+       vcmppd $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vcmpps $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vcmpsd $0, %xmm0, %xmm0, %k0{%k1}{z}
+       vcmpss $0, %xmm0, %xmm0, %k0{%k1}{z}
+
+       vcompresspd %zmm0, (%eax){%k1}{z}
+       vcompressps %zmm0, (%eax){%k1}{z}
+
+       vcvtps2ph $0, %zmm0, (%eax){%k1}{z}
+
+       vextractf32x4 $0, %zmm0, (%eax){%k1}{z}
+       vextractf32x8 $0, %zmm0, (%eax){%k1}{z}
+       vextractf64x2 $0, %zmm0, (%eax){%k1}{z}
+       vextractf64x4 $0, %zmm0, (%eax){%k1}{z}
+
+       vextracti32x4 $0, %zmm0, (%eax){%k1}{z}
+       vextracti32x8 $0, %zmm0, (%eax){%k1}{z}
+       vextracti64x2 $0, %zmm0, (%eax){%k1}{z}
+       vextracti64x4 $0, %zmm0, (%eax){%k1}{z}
+
+       vfpclasspd $0, %zmm0, %k0{%k1}{z}
+       vfpclassps $0, %zmm0, %k0{%k1}{z}
+       vfpclasssd $0, %xmm0, %k0{%k1}{z}
+       vfpclassss $0, %xmm0, %k0{%k1}{z}
+
+       vgatherdpd (%eax,%ymm1), %zmm0{%k1}{z}
+       vgatherdps (%eax,%zmm1), %zmm0{%k1}{z}
+       vgatherqpd (%eax,%zmm1), %zmm0{%k1}{z}
+       vgatherqps (%eax,%zmm1), %ymm0{%k1}{z}
+
+       vgatherpf0dpd (%eax,%ymm1){%k1}{z}
+       vgatherpf0dps (%eax,%zmm1){%k1}{z}
+       vgatherpf0qpd (%eax,%zmm1){%k1}{z}
+       vgatherpf0qps (%eax,%zmm1){%k1}{z}
+
+       vgatherpf1dpd (%eax,%ymm1){%k1}{z}
+       vgatherpf1dps (%eax,%zmm1){%k1}{z}
+       vgatherpf1qpd (%eax,%zmm1){%k1}{z}
+       vgatherpf1qps (%eax,%zmm1){%k1}{z}
+
+       vmovapd %zmm0, (%eax){%k1}{z}
+       vmovaps %zmm0, (%eax){%k1}{z}
+
+       vmovdqa32 %zmm0, (%eax){%k1}{z}
+       vmovdqa64 %zmm0, (%eax){%k1}{z}
+
+       vmovdqu8 %zmm0, (%eax){%k1}{z}
+       vmovdqu16 %zmm0, (%eax){%k1}{z}
+       vmovdqu32 %zmm0, (%eax){%k1}{z}
+       vmovdqu64 %zmm0, (%eax){%k1}{z}
+
+       vmovsd %xmm0, (%eax){%k1}{z}
+       vmovss %xmm0, (%eax){%k1}{z}
+
+       vmovupd %zmm0, (%eax){%k1}{z}
+       vmovups %zmm0, (%eax){%k1}{z}
+
+       vpcmpb $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpd $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpq $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpw $0, %zmm0, %zmm0, %k0{%k1}{z}
+
+       vpcmpeqb %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpeqd %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpeqq %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpeqw %zmm0, %zmm0, %k0{%k1}{z}
+
+       vpcmpgtb %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpgtd %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpgtq %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpgtw %zmm0, %zmm0, %k0{%k1}{z}
+
+       vpcmpub $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpud $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpuq $0, %zmm0, %zmm0, %k0{%k1}{z}
+       vpcmpuw $0, %zmm0, %zmm0, %k0{%k1}{z}
+
+       vpcompressb %zmm0, (%eax){%k1}{z}
+       vpcompressd %zmm0, (%eax){%k1}{z}
+       vpcompressq %zmm0, (%eax){%k1}{z}
+       vpcompressw %zmm0, (%eax){%k1}{z}
+
+       vpgatherdd (%eax,%zmm1), %zmm0{%k1}{z}
+       vpgatherdq (%eax,%ymm1), %zmm0{%k1}{z}
+       vpgatherqd (%eax,%zmm1), %ymm0{%k1}{z}
+       vpgatherqq (%eax,%zmm1), %zmm0{%k1}{z}
+
+       vpmovdb %zmm0, (%eax){%k1}{z}
+       vpmovdw %zmm0, (%eax){%k1}{z}
+
+       vpmovqb %zmm0, (%eax){%k1}{z}
+       vpmovqd %zmm0, (%eax){%k1}{z}
+       vpmovqw %zmm0, (%eax){%k1}{z}
+
+       vpmovsdb %zmm0, (%eax){%k1}{z}
+       vpmovsdw %zmm0, (%eax){%k1}{z}
+
+       vpmovsqb %zmm0, (%eax){%k1}{z}
+       vpmovsqd %zmm0, (%eax){%k1}{z}
+       vpmovsqw %zmm0, (%eax){%k1}{z}
+
+       vpmovswb %zmm0, (%eax){%k1}{z}
+
+       vpmovusdb %zmm0, (%eax){%k1}{z}
+       vpmovusdw %zmm0, (%eax){%k1}{z}
+
+       vpmovusqb %zmm0, (%eax){%k1}{z}
+       vpmovusqd %zmm0, (%eax){%k1}{z}
+       vpmovusqw %zmm0, (%eax){%k1}{z}
+
+       vpmovuswb %zmm0, (%eax){%k1}{z}
+
+       vpmovwb %zmm0, (%eax){%k1}{z}
+
+       vpscatterdd %zmm0, (%eax,%zmm1){%k1}{z}
+       vpscatterdq %zmm0, (%eax,%ymm1){%k1}{z}
+       vpscatterqd %ymm0, (%eax,%zmm1){%k1}{z}
+       vpscatterqq %zmm0, (%eax,%zmm1){%k1}{z}
+
+       vpshufbitqmb %zmm0, %zmm0, %k0{%k1}{z}
+
+       vptestmb %zmm0, %zmm0, %k0{%k1}{z}
+       vptestmd %zmm0, %zmm0, %k0{%k1}{z}
+       vptestmq %zmm0, %zmm0, %k0{%k1}{z}
+       vptestmw %zmm0, %zmm0, %k0{%k1}{z}
+
+       vptestnmb %zmm0, %zmm0, %k0{%k1}{z}
+       vptestnmd %zmm0, %zmm0, %k0{%k1}{z}
+       vptestnmq %zmm0, %zmm0, %k0{%k1}{z}
+       vptestnmw %zmm0, %zmm0, %k0{%k1}{z}
+
+       vscatterdpd %zmm0, (%eax,%ymm1){%k1}{z}
+       vscatterdps %zmm0, (%eax,%zmm1){%k1}{z}
+       vscatterqpd %zmm0, (%eax,%zmm1){%k1}{z}
+       vscatterqps %ymm0, (%eax,%zmm1){%k1}{z}
+
+       vscatterpf0dpd (%eax,%ymm1){%k1}{z}
+       vscatterpf0dps (%eax,%zmm1){%k1}{z}
+       vscatterpf0qpd (%eax,%zmm1){%k1}{z}
+       vscatterpf0qps (%eax,%zmm1){%k1}{z}
+
+       vscatterpf1dpd (%eax,%ymm1){%k1}{z}
+       vscatterpf1dps (%eax,%zmm1){%k1}{z}
+       vscatterpf1qpd (%eax,%zmm1){%k1}{z}
+       vscatterpf1qps (%eax,%zmm1){%k1}{z}