From fa77b93ab76cae42e9394592d7474c795bb28f7e Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 31 Jul 2018 10:56:09 +0200 Subject: [PATCH] x86: add more exhaustive tests for invalid AVX512 zeroing-masking 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 | 6 + gas/testsuite/gas/i386/inval-avx512f.l | 261 +++++++++++++++++++++++++ gas/testsuite/gas/i386/inval-avx512f.s | 147 ++++++++++++++ 3 files changed, 414 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 8c2bc57860c..ff348368b3e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2018-07-31 Jan Beulich + + * testsuite/gas/i386/inval-avx512f.s: Add invalid zeroing- + masking tests. + * testsuite/gas/i386/inval-avx512f.l: Adjust expectations. + 2018-07-31 Jan Beulich * testsuite/gas/i386/sg.s, testsuite/gas/i386/sg.l: New. diff --git a/gas/testsuite/gas/i386/inval-avx512f.l b/gas/testsuite/gas/i386/inval-avx512f.l index b61a9050f5a..048e88b9c07 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.l +++ b/gas/testsuite/gas/i386/inval-avx512f.l @@ -101,6 +101,116 @@ .*: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[ ]* + GAS 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\} + GAS 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\} diff --git a/gas/testsuite/gas/i386/inval-avx512f.s b/gas/testsuite/gas/i386/inval-avx512f.s index d5217769314..f380fe30ee5 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.s +++ b/gas/testsuite/gas/i386/inval-avx512f.s @@ -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} -- 2.30.2