1# Check illegal AVX512F instructions
2	.text
3	.allow_index_reg
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
18	vgatherqpd (%rdi,%zmm2,8),%zmm6
19	vgatherqpd (%edi),%zmm6{%k1}
20	vgatherqpd (%zmm2),%zmm6{%k1}
21	vpscatterdd %zmm6,(%edi){%k1}
22	vpscatterdd %zmm6,(%zmm2){%k1}
23
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
38	vgatherqpd zmm6, ZMMWORD PTR [rdi+zmm2*8]
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
43
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]
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
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}
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
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}
307
308	vdpbf16ps 8(%eax){1to8}, %zmm2, %zmm2
309	vcvtne2ps2bf16 8(%eax){1to8}, %zmm2, %zmm2
310
311	vcvtneps2bf16 (%eax){1to2}, %ymm1
312	vcvtneps2bf16 (%eax){1to4}, %ymm1
313	vcvtneps2bf16 (%eax){1to8}, %ymm1
314	vcvtneps2bf16 (%eax){1to16}, %ymm1
315
316	vcvtneps2bf16 (%eax){1to2}, %xmm1
317	vcvtneps2bf16 (%eax){1to4}, %xmm1
318	vcvtneps2bf16 (%eax){1to8}, %xmm1
319	vcvtneps2bf16 (%eax){1to16}, %xmm1
320	.p2align 4
321