This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] x86: add more exhaustive tests for invalid AVX512 zeroing-masking


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fa77b93ab76cae42e9394592d7474c795bb28f7e

commit fa77b93ab76cae42e9394592d7474c795bb28f7e
Author: Jan Beulich <jbeulich@novell.com>
Date:   Tue Jul 31 10:56:09 2018 +0200

    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.

Diff:
---
 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 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}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]