Commit | Line | Data |
---|---|---|
43234a1e L |
1 | # Check illegal AVX512F instructions |
2 | .text | |
83861ea6 | 3 | .allow_index_reg |
43234a1e L |
4 | _start: |
5 | mov {sae}, %eax{%k1} | |
6 | mov {sae}, %eax | |
7 | mov %ebx, %eax{%k2} | |
8 | vaddps %zmm3, %zmm1, %zmm2{z}{%k1}{z} | |
9 | vaddps %zmm3, %zmm1{%k3}, %zmm2{z} | |
10 | vaddps %zmm3, %zmm1{%k1}, %zmm2{%k2} | |
11 | ||
12 | vcvtps2pd (%eax), %zmm1{1to8} | |
13 | vcvtps2pd (%eax){1to16}, %zmm1 | |
14 | ||
15 | vcvtps2pd (%eax){%k1}, %zmm1 | |
16 | vcvtps2pd (%eax){z}, %zmm1 | |
17 | ||
ad8ecc81 | 18 | vgatherqpd (%rdi,%zmm2,8),%zmm6 |
83861ea6 MZ |
19 | vgatherqpd (%edi),%zmm6{%k1} |
20 | vgatherqpd (%zmm2),%zmm6{%k1} | |
21 | vpscatterdd %zmm6,(%edi){%k1} | |
22 | vpscatterdd %zmm6,(%zmm2){%k1} | |
ad8ecc81 | 23 | |
43234a1e L |
24 | .intel_syntax noprefix |
25 | mov eax{k1}, {sae} | |
26 | mov eax, {sae} | |
27 | mov eax{k2}, ebx | |
28 | vaddps zmm2{z}{k1}{z}, zmm1, zmm3 | |
29 | vaddps zmm2{z}, zmm1{k3}, zmm3 | |
30 | vaddps zmm2{k2}, zmm1{k1}, zmm3 | |
31 | ||
32 | vcvtps2pd zmm1{1to8}, [eax] | |
33 | vcvtps2pd zmm1, [eax]{1to16} | |
34 | ||
35 | vcvtps2pd zmm1, [eax]{k1} | |
36 | vcvtps2pd zmm1, [eax]{z} | |
37 | ||
ad8ecc81 | 38 | vgatherqpd zmm6, ZMMWORD PTR [rdi+zmm2*8] |
83861ea6 MZ |
39 | vgatherqpd zmm6{k1}, ZMMWORD PTR [edi] |
40 | vgatherqpd zmm6{k1}, ZMMWORD PTR [zmm2+eiz] | |
41 | vpscatterdd ZMMWORD PTR [edi]{k1}, zmm6 | |
42 | vpscatterdd ZMMWORD PTR [zmm2+eiz]{k1}, zmm6 | |
ad8ecc81 | 43 | |
43234a1e L |
44 | vaddps zmm2, zmm1, QWORD PTR [eax]{1to8} |
45 | vaddps zmm2, zmm1, QWORD PTR [eax]{1to16} | |
46 | vaddpd zmm2, zmm1, DWORD PTR [eax]{1to8} | |
47 | vaddpd zmm2, zmm1, DWORD PTR [eax]{1to16} | |
48 | vaddps zmm2, zmm1, ZMMWORD PTR [eax]{1to16} | |
49 | vaddps zmm2, zmm1, DWORD PTR [eax] | |
50 | vaddpd zmm2, zmm1, QWORD PTR [eax] | |
6d2cd6b2 JB |
51 | |
52 | .att_syntax prefix | |
53 | vaddps %zmm0, %zmm1, %zmm2{%ecx} | |
54 | vaddps %zmm0, %zmm1, %zmm2{z} | |
55 | ||
56 | .intel_syntax noprefix | |
57 | vaddps zmm2{ecx}, zmm1, zmm0 | |
58 | vaddps zmm2{z}, zmm1, zmm0 | |
8e6e0792 JB |
59 | |
60 | .att_syntax prefix | |
61 | vmovaps (%eax){1to2}, %zmm1 | |
62 | vmovaps (%eax){1to4}, %zmm1 | |
63 | vmovaps (%eax){1to8}, %zmm1 | |
64 | vmovaps (%eax){1to16}, %zmm1 | |
65 | ||
66 | vcvtps2pd (%eax){1to2}, %zmm1 | |
67 | vcvtps2pd (%eax){1to4}, %zmm1 | |
68 | vcvtps2pd (%eax){1to8}, %zmm1 | |
69 | vcvtps2pd (%eax){1to16}, %zmm1 | |
70 | ||
71 | vcvtps2pd (%eax){1to2}, %ymm1 | |
72 | vcvtps2pd (%eax){1to4}, %ymm1 | |
73 | vcvtps2pd (%eax){1to8}, %ymm1 | |
74 | vcvtps2pd (%eax){1to16}, %ymm1 | |
75 | ||
76 | vcvtps2pd (%eax){1to2}, %xmm1 | |
77 | vcvtps2pd (%eax){1to4}, %xmm1 | |
78 | vcvtps2pd (%eax){1to8}, %xmm1 | |
79 | vcvtps2pd (%eax){1to16}, %xmm1 | |
80 | ||
81 | vaddps (%eax){1to2}, %zmm1, %zmm2 | |
82 | vaddps (%eax){1to4}, %zmm1, %zmm2 | |
83 | vaddps (%eax){1to8}, %zmm1, %zmm2 | |
84 | vaddps (%eax){1to16}, %zmm1, %zmm2 | |
85 | ||
86 | vaddps (%eax){1to2}, %ymm1, %ymm2 | |
87 | vaddps (%eax){1to4}, %ymm1, %ymm2 | |
88 | vaddps (%eax){1to8}, %ymm1, %ymm2 | |
89 | vaddps (%eax){1to16}, %ymm1, %ymm2 | |
90 | ||
91 | vaddps (%eax){1to2}, %xmm1, %xmm2 | |
92 | vaddps (%eax){1to4}, %xmm1, %xmm2 | |
93 | vaddps (%eax){1to8}, %xmm1, %xmm2 | |
94 | vaddps (%eax){1to16}, %xmm1, %xmm2 | |
95 | ||
96 | vaddpd (%eax){1to2}, %zmm1, %zmm2 | |
97 | vaddpd (%eax){1to4}, %zmm1, %zmm2 | |
98 | vaddpd (%eax){1to8}, %zmm1, %zmm2 | |
99 | vaddpd (%eax){1to16}, %zmm1, %zmm2 | |
100 | ||
101 | vaddpd (%eax){1to2}, %ymm1, %ymm2 | |
102 | vaddpd (%eax){1to4}, %ymm1, %ymm2 | |
103 | vaddpd (%eax){1to8}, %ymm1, %ymm2 | |
104 | vaddpd (%eax){1to16}, %ymm1, %ymm2 | |
105 | ||
106 | vaddpd (%eax){1to2}, %xmm1, %xmm2 | |
107 | vaddpd (%eax){1to4}, %xmm1, %xmm2 | |
108 | vaddpd (%eax){1to8}, %xmm1, %xmm2 | |
109 | vaddpd (%eax){1to16}, %xmm1, %xmm2 | |
110 | ||
111 | .intel_syntax noprefix | |
112 | vcvtps2pd zmm1, QWORD PTR [eax] | |
113 | vcvtps2pd ymm1, QWORD PTR [eax] | |
114 | vcvtps2pd xmm1, QWORD PTR [eax] | |
115 | ||
116 | vcvtps2pd xmm1, DWORD PTR [eax]{1to2} | |
117 | vcvtps2pd xmm1, DWORD PTR [eax]{1to4} | |
118 | vcvtps2pd xmm1, DWORD PTR [eax]{1to8} | |
119 | vcvtps2pd xmm1, DWORD PTR [eax]{1to16} | |
120 | ||
121 | vaddps zmm2, zmm1, QWORD PTR [eax] | |
122 | vaddps ymm2, ymm1, QWORD PTR [eax] | |
123 | vaddps xmm2, xmm1, QWORD PTR [eax] | |
124 | ||
125 | vaddps zmm2, zmm1, DWORD PTR [eax]{1to2} | |
126 | vaddps zmm2, zmm1, DWORD PTR [eax]{1to4} | |
127 | vaddps zmm2, zmm1, DWORD PTR [eax]{1to8} | |
128 | vaddps zmm2, zmm1, DWORD PTR [eax]{1to16} | |
129 | ||
130 | vaddps ymm2, ymm1, DWORD PTR [eax]{1to2} | |
131 | vaddps ymm2, ymm1, DWORD PTR [eax]{1to4} | |
132 | vaddps ymm2, ymm1, DWORD PTR [eax]{1to8} | |
133 | vaddps ymm2, ymm1, DWORD PTR [eax]{1to16} | |
134 | ||
135 | vaddps xmm2, xmm1, DWORD PTR [eax]{1to2} | |
136 | vaddps xmm2, xmm1, DWORD PTR [eax]{1to4} | |
137 | vaddps xmm2, xmm1, DWORD PTR [eax]{1to8} | |
138 | vaddps xmm2, xmm1, DWORD PTR [eax]{1to16} | |
139 | ||
140 | vaddpd zmm2, zmm1, DWORD PTR [eax] | |
141 | vaddpd ymm2, ymm1, DWORD PTR [eax] | |
142 | vaddpd xmm2, xmm1, DWORD PTR [eax] | |
143 | ||
144 | vaddpd zmm2, zmm1, QWORD PTR [eax]{1to2} | |
145 | vaddpd zmm2, zmm1, QWORD PTR [eax]{1to4} | |
146 | vaddpd zmm2, zmm1, QWORD PTR [eax]{1to8} | |
147 | vaddpd zmm2, zmm1, QWORD PTR [eax]{1to16} | |
148 | ||
149 | vaddpd ymm2, ymm1, QWORD PTR [eax]{1to2} | |
150 | vaddpd ymm2, ymm1, QWORD PTR [eax]{1to4} | |
151 | vaddpd ymm2, ymm1, QWORD PTR [eax]{1to8} | |
152 | vaddpd ymm2, ymm1, QWORD PTR [eax]{1to16} | |
153 | ||
154 | vaddpd xmm2, xmm1, QWORD PTR [eax]{1to2} | |
155 | vaddpd xmm2, xmm1, QWORD PTR [eax]{1to4} | |
156 | vaddpd xmm2, xmm1, QWORD PTR [eax]{1to8} | |
157 | vaddpd xmm2, xmm1, QWORD PTR [eax]{1to16} | |
e2b7fbc4 L |
158 | |
159 | vcvtps2qq xmm0, DWORD PTR [eax] | |
fa77b93a JB |
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 | ||
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} | |
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} | |
a2f4b66c L |
307 | |
308 | vdpbf16ps 8(%eax){1to8}, %zmm2, %zmm2 | |
309 | vcvtne2ps2bf16 8(%eax){1to8}, %zmm2, %zmm2 |