aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2018-07-31 10:56:09 +0200
committerJan Beulich <jbeulich@suse.com>2018-07-31 10:56:09 +0200
commitfa77b93ab76cae42e9394592d7474c795bb28f7e (patch)
tree25af2dc4039b3acbdf786adf15c605808fa9bfa9
parent6ff00b5e12e7256738d9a4dac66e5a7745b771ea (diff)
downloadgdb-fa77b93ab76cae42e9394592d7474c795bb28f7e.zip
gdb-fa77b93ab76cae42e9394592d7474c795bb28f7e.tar.gz
gdb-fa77b93ab76cae42e9394592d7474c795bb28f7e.tar.bz2
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.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/i386/inval-avx512f.l261
-rw-r--r--gas/testsuite/gas/i386/inval-avx512f.s147
3 files changed, 414 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 8c2bc57..ff34836 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
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.
* testsuite/gas/i386/i386.exp: Run new test.
* testsuite/gas/i386/avx512f.s, testsuite/gas/i386/avx512f_vl.s,
diff --git a/gas/testsuite/gas/i386/inval-avx512f.l b/gas/testsuite/gas/i386/inval-avx512f.l
index b61a905..048e88b 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 d521776..f380fe3 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}